Bläddra i källkod

Merge branch 'master' of http://116.255.223.226:3000/zhangzl/nsgk_wechat

 Conflicts:
	app.json
master
pangdongxu 3 år sedan
förälder
incheckning
eb66976d15
50 ändrade filer med 3999 tillägg och 120 borttagningar
  1. +6
    -0
      app.json
  2. +240
    -0
      component/editor/assets/iconfont.wxss
  3. +178
    -0
      component/editor/editor.js
  4. +3
    -0
      component/editor/editor.json
  5. +50
    -0
      component/editor/editor.wxml
  6. +34
    -0
      component/editor/editor.wxss
  7. Binär
      image/icon/cancel_icon.png
  8. Binär
      image/icon/clock_red_icon.png
  9. Binär
      image/icon/detailNum_icon.png
  10. Binär
      image/icon/payBg.png
  11. Binär
      image/icon/paymentManager_icon.png
  12. Binär
      image/icon/scrap_icon.png
  13. Binär
      image/icon/sell_icon.png
  14. Binär
      image/icon/terminate_icon.png
  15. Binär
      image/index/majorEvent_icon.png
  16. Binär
      image/index/paymentManager_icon.png
  17. +0
    -2
      pages/bankDraft/bankDraft.js
  18. +3
    -3
      pages/bankDraft/bankDraft.wxss
  19. +0
    -2
      pages/contract/add/add.js
  20. +28
    -0
      pages/contract/contract.js
  21. +20
    -2
      pages/contract/contract.wxml
  22. +8
    -0
      pages/contract/contract.wxss
  23. +102
    -51
      pages/contractAssets/fixedAssets.js
  24. +47
    -7
      pages/contractAssets/fixedAssets.wxml
  25. +4
    -4
      pages/finance/finance.wxml
  26. +10
    -10
      pages/finance/finance.wxss
  27. +629
    -0
      pages/fixedAssets/change/change.js
  28. +10
    -0
      pages/fixedAssets/change/change.json
  29. +280
    -0
      pages/fixedAssets/change/change.wxml
  30. +69
    -0
      pages/fixedAssets/change/change.wxss
  31. +52
    -1
      pages/fixedAssets/fixedAssets.js
  32. +27
    -1
      pages/fixedAssets/fixedAssets.wxml
  33. +8
    -0
      pages/fixedAssets/fixedAssets.wxss
  34. +8
    -0
      pages/index/index.wxml
  35. +228
    -0
      pages/majorEvent/add/add.js
  36. +21
    -0
      pages/majorEvent/add/add.json
  37. +24
    -0
      pages/majorEvent/add/add.wxml
  38. +103
    -0
      pages/majorEvent/add/add.wxss
  39. +398
    -0
      pages/majorEvent/majorEvent.js
  40. +17
    -0
      pages/majorEvent/majorEvent.json
  41. +91
    -0
      pages/majorEvent/majorEvent.wxml
  42. +347
    -0
      pages/majorEvent/majorEvent.wxss
  43. +410
    -0
      pages/paymentManager/paymentManager.js
  44. +16
    -0
      pages/paymentManager/paymentManager.json
  45. +79
    -0
      pages/paymentManager/paymentManager.wxml
  46. +285
    -0
      pages/paymentManager/paymentManager.wxss
  47. +26
    -31
      pages/project/add/add.wxml
  48. +2
    -0
      pages/project/add/add.wxss
  49. +36
    -5
      style/iconfont.wxss
  50. +100
    -1
      utils/API.js

+ 6
- 0
app.json Visa fil

@@ -42,6 +42,12 @@
"pages/apply/paymentTemplate/add/upLoad/upLoad",
"pages/apply/paymentTemplate/add/upError/upError",
"pages/apply/paymentTemplate/add/payeeList/payee"
"pages/contractAssets/fixedAssets",
"pages/fixedAssets/change/change",
"pages/paymentManager/paymentManager",
"pages/paymentManager/toPay/toPay",
"pages/majorEvent/majorEvent",
"pages/majorEvent/add/add"
],
"window": {
"backgroundTextStyle": "light",


+ 240
- 0
component/editor/assets/iconfont.wxss
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 178
- 0
component/editor/editor.js Visa fil

@@ -0,0 +1,178 @@
Component({
properties: {
width: {
type: String
},
height: {
type: String
},
insertPicture: {
type: Boolean,
value: true
},
placeholder: {
type: String,
value: '输入文字...'
}
},
data: {
formats: {},
readOnly: false,
// editorHeight: 300,
keyboardHeight: 0,
isIOS: false
},
ready() {
const platform = wx.getSystemInfoSync().platform
const isIOS = platform === 'ios'
this.setData({
isIOS
})
const that = this
this.updatePosition(0)
let keyboardHeight = 0
wx.onKeyboardHeightChange(res => {
if (res.height === keyboardHeight) return
const duration = res.height > 0 ? res.duration * 1000 : 0
keyboardHeight = res.height
setTimeout(() => {
wx.pageScrollTo({
scrollTop: 0,
success() {
that.updatePosition(keyboardHeight)
that.editorCtx.scrollIntoView()
}
})
}, duration)

})
},
methods: {
readOnlyChange() {
this.setData({
readOnly: !this.data.readOnly
})
},
updatePosition(keyboardHeight) {
const toolbarHeight = 100
const {
windowHeight,
platform
} = wx.getSystemInfoSync()
// let editorHeight = keyboardHeight > 0 ? (windowHeight - keyboardHeight - toolbarHeight) : windowHeight
this.setData({
// editorHeight,
keyboardHeight
})
},
calNavigationBarAndStatusBar() {
const systemInfo = wx.getSystemInfoSync()
const {
statusBarHeight,
platform
} = systemInfo
const isIOS = platform === 'ios'
const navigationBarHeight = isIOS ? 44 : 48
return statusBarHeight + navigationBarHeight
},
onEditorReady() {
const that = this
//组件使用createSelectorQuery加上in(this)
wx.createSelectorQuery().in(that).select('#editor').context(function (res) {
that.editorCtx = res.context
}).exec()
},
undo() {
this.editorCtx.undo()
},
redo() {
this.editorCtx.redo()
},
blur() {
this.editorCtx.blur()
},
format(e) {
let {
name,
value
} = e.target.dataset
if (!name) return
// console.log('format', name, value)
if (name === "backgroundColor" && value === "#ff0000") { //设置字体颜色为白色
this.editorCtx.format("color", "#ffffff")
}
if (name === "backgroundColor" && value === "#ffffff") {
this.editorCtx.format("color", "#000000")
}
if (name === "color") { //清除字体样式
this.editorCtx.removeFormat()
}
this.editorCtx.format(name, value)

},
onStatusChange(e) {
const formats = e.detail
this.setData({
formats
})
},
insertDivider() {
this.editorCtx.insertDivider({
success: function () {
console.log('insert divider success')
}
})
},
clear() {
this.editorCtx.clear({
success: function (res) {
console.log("clear success")
}
})
},
removeFormat() {
this.editorCtx.removeFormat()
},
insertDate() {
const date = new Date()
const formatDate = `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`
this.editorCtx.insertText({
text: formatDate
})
},
insertImage() {
this.triggerEvent('insertImage'); //触发父组件方法
},
insertSrc(src) { //接受图片返回地址
this.editorCtx.insertImage({
src,
data: {
id: 'abcd',
role: 'god'
},
width: '80%',
fail: (err) => {
console.log(`图片插入失败:${err}`);
}
})
},
getContent(e) { //获得文本内容
this.triggerEvent('Content', {
content: e.detail
})
},
setHtml(html) { //回显
if (html) {
this.createSelectorQuery().select('#editor').context((res) => {
this.editorCtx = res.context
this.editorCtx.setContents({
html,
fail: (err) => {
console.log(`内容回显失败:${err}`);
}
})
}).exec()
}
},
}
})

+ 3
- 0
component/editor/editor.json Visa fil

@@ -0,0 +1,3 @@
{
"component": true
}

+ 50
- 0
component/editor/editor.wxml Visa fil

@@ -0,0 +1,50 @@
<editor id="editor" class="ql-container" placeholder="{{placeholder}}" bindstatuschange="onStatusChange" bindready="onEditorReady" bindinput="getContent" style="width:{{width}};height:{{height}};" show-img-size show-img-toolbar show-img-resize>
</editor>

<view class="toolbar" catchtouchend="format" hidden="{{keyboardHeight > 0 ? false : true}}" style="bottom: {{isIOS ? keyboardHeight : 0}}px">
<!-- 官方案例 -->
<!-- <i class="iconfont icon-charutupian" catchtouchend="insertImage"></i>
<i class="iconfont icon-format-header-2 {{formats.header === 2 ? 'ql-active' : ''}}" data-name="header" data-value="{{2}}"></i>
<i class="iconfont icon-format-header-3 {{formats.header === 3 ? 'ql-active' : ''}}" data-name="header" data-value="{{3}}"></i>
<i class="iconfont icon-zitijiacu {{formats.bold ? 'ql-active' : ''}}" data-name="bold"></i>
<i class="iconfont icon-zitixieti {{formats.italic ? 'ql-active' : ''}}" data-name="italic"></i>
<i class="iconfont icon-zitixiahuaxian {{formats.underline ? 'ql-active' : ''}}" data-name="underline"></i>
<i class="iconfont icon--checklist" data-name="list" data-value="check"></i>
<i class="iconfont icon-youxupailie {{formats.list === 'ordered' ? 'ql-active' : ''}}" data-name="list" data-value="ordered"></i>
<i class="iconfont icon-wuxupailie {{formats.list === 'bullet' ? 'ql-active' : ''}}" data-name="list" data-value="bullet"></i> -->
<i class="iconfont icon-zitijiacu {{formats.bold ? 'ql-active' : ''}}" data-name="bold"></i>
<i class="iconfont icon-zitixieti {{formats.italic ? 'ql-active' : ''}}" data-name="italic"></i>
<i class="iconfont icon-zitixiahuaxian {{formats.underline ? 'ql-active' : ''}}" data-name="underline"></i>
<i class="iconfont icon-zitishanchuxian {{formats.strike ? 'ql-active' : ''}}" data-name="strike"></i>
<i class="iconfont icon-zuoduiqi {{formats.align === 'left' ? 'ql-active' : ''}}" data-name="align" data-value="left"></i>
<i class="iconfont icon-juzhongduiqi {{formats.align === 'center' ? 'ql-active' : ''}}" data-name="align" data-value="center"></i>
<i class="iconfont icon-youduiqi {{formats.align === 'right' ? 'ql-active' : ''}}" data-name="align" data-value="right"></i>
<i class="iconfont icon-zuoyouduiqi {{formats.align === 'justify' ? 'ql-active' : ''}}" data-name="align" data-value="justify"></i>
<i class="iconfont icon-line-height {{formats.lineHeight ? 'ql-active' : ''}}" data-name="lineHeight" data-value="2"></i>
<i class="iconfont icon-Character-Spacing {{formats.letterSpacing ? 'ql-active' : ''}}" data-name="letterSpacing" data-value="2em"></i>
<i class="iconfont icon-722bianjiqi_duanqianju {{formats.marginTop ? 'ql-active' : ''}}" data-name="marginTop" data-value="20px"></i>
<i class="iconfont icon-723bianjiqi_duanhouju {{formats.micon-previewarginBottom ? 'ql-active' : ''}}" data-name="marginBottom" data-value="20px"></i>
<i class="iconfont icon-clearedformat" bindtap="removeFormat"></i>
<!-- <i class="iconfont icon-font {{formats.fontFamily ? 'ql-active' : ''}}" data-name="fontFamily" data-value="Pacifico"></i> -->
<i class="iconfont icon-fontsize {{formats.fontSize === '24px' ? 'ql-active' : ''}}" data-name="fontSize" data-value="24px"></i>
<i class="iconfont icon-text_color {{formats.color === '#ff0000' ? 'ql-active' : ''}}" data-name="color" data-value="{{formats.color === '#ff0000' ? '#000000' : '#ff0000'}}"></i>
<i class="iconfont icon-fontbgcolor {{formats.backgroundColor === '#ff0000' ? 'ql-active' : ''}}" data-name="backgroundColor" data-value="{{formats.color === '#ff0000' ? '#ffffff' : '#ff0000'}}"></i>
<i class="iconfont icon-date" bindtap="insertDate"></i>
<i class="iconfont icon--checklist" data-name="list" data-value="check"></i>
<i class="iconfont icon-youxupailie {{formats.list === 'ordered' ? 'ql-active' : ''}}" data-name="list" data-value="ordered"></i>
<i class="iconfont icon-wuxupailie {{formats.list === 'bullet' ? 'ql-active' : ''}}" data-name="list" data-value="bullet"></i>
<i class="iconfont icon-undo" bindtap="undo"></i>
<i class="iconfont icon-redo" bindtap="redo"></i>
<i class="iconfont icon-outdent" data-name="indent" data-value="-1"></i>
<i class="iconfont icon-indent" data-name="indent" data-value="+1"></i>
<i class="iconfont icon-fengexian" bindtap="insertDivider"></i>
<i class="iconfont icon-charutupian" bindtap="insertImage" wx:if="{{insertPicture}}"></i>
<i class="iconfont icon-format-header-1 {{formats.header === 1 ? 'ql-active' : ''}}" data-name="header" data-value="{{1}}"></i>
<i class="iconfont icon-format-header-2 {{formats.header === 2 ? 'ql-active' : ''}}" data-name="header" data-value="{{2}}"></i>
<i class="iconfont icon-format-header-3 {{formats.header === 3 ? 'ql-active' : ''}}" data-name="header" data-value="{{3}}"></i>
<i class="iconfont icon-zitixiabiao {{formats.script === 'sub' ? 'ql-active' : ''}}" data-name="script" data-value="sub"></i>
<i class="iconfont icon-zitishangbiao {{formats.script === 'super' ? 'ql-active' : ''}}" data-name="script" data-value="super"></i>
<!-- <i class="iconfont icon-quanping"></i> -->
<i class="iconfont icon-shanchu" bindtap="clear"></i>
<i class="iconfont icon-direction-rtl {{formats.direction === 'rtl' ? 'ql-active' : ''}}" data-name="direction" data-value="rtl"></i>
</view>

+ 34
- 0
component/editor/editor.wxss Visa fil

@@ -0,0 +1,34 @@
@import "./assets/iconfont.wxss";
.ql-container {
font-size: 16px;
line-height: 1.5;
padding: 10px 10px 20px 10px;
}

.ql-active {
color: #22C704;
}

.iconfont {
display: flex;
width: 60rpx;
height: 60rpx;
align-items: center;
justify-content: center;
font-size: 40rpx;
}

.toolbar {
padding: 0 16rpx;
height: 200rpx;
width: 100%;
position: fixed;
left: 0;
right: 100%;
bottom: 0;
display: flex;
flex-wrap: wrap;
align-items: center;
border-top: 1px solid #ECECEC;
background-color: white;
}

Binär
image/icon/cancel_icon.png Visa fil

Före Efter
Bredd: 52  |  Höjd: 52  |  Storlek: 1.7 KiB

Binär
image/icon/clock_red_icon.png Visa fil

Före Efter
Bredd: 24  |  Höjd: 24  |  Storlek: 644 B

Binär
image/icon/detailNum_icon.png Visa fil

Före Efter
Bredd: 22  |  Höjd: 27  |  Storlek: 529 B

Binär
image/icon/payBg.png Visa fil

Före Efter
Bredd: 160  |  Höjd: 167  |  Storlek: 2.9 KiB

Binär
image/icon/paymentManager_icon.png Visa fil

Före Efter
Bredd: 23  |  Höjd: 29  |  Storlek: 535 B

Binär
image/icon/scrap_icon.png Visa fil

Före Efter
Bredd: 52  |  Höjd: 52  |  Storlek: 1.8 KiB

Binär
image/icon/sell_icon.png Visa fil

Före Efter
Bredd: 52  |  Höjd: 52  |  Storlek: 2.9 KiB

Binär
image/icon/terminate_icon.png Visa fil

Före Efter
Bredd: 52  |  Höjd: 52  |  Storlek: 1.2 KiB

Binär
image/index/majorEvent_icon.png Visa fil

Före Efter
Bredd: 79  |  Höjd: 67  |  Storlek: 1.8 KiB

Binär
image/index/paymentManager_icon.png Visa fil

Före Efter
Bredd: 80  |  Höjd: 67  |  Storlek: 1.9 KiB

+ 0
- 2
pages/bankDraft/bankDraft.js Visa fil

@@ -118,8 +118,6 @@ Page({
if (response.code == API.SUCCESS_CODE) {
for (let i = 0; i < response.rows.length; i++) {
response.rows[i].orderTypeText = UTIL.getTransform(response.rows[i].orderType,res.data);
response.rows[i].startTime = response.rows[i].startTime.replace(/-/g,".");
response.rows[i].endTime = response.rows[i].endTime.replace(/-/g,".");
response.rows[i].orderAmount = Number(response.rows[i].orderAmount).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
return $1 + ","; }).replace(/\.$/, "")
}


+ 3
- 3
pages/bankDraft/bankDraft.wxss Visa fil

@@ -142,7 +142,7 @@ text{display: block;}
margin-top: 10px;
}
.detail_time text{
font-size: 14px;
font-size: 12px;
margin-left: 5px;
color: #878787;
}
@@ -154,7 +154,7 @@ text{display: block;}
}
.li .detail_box_left .fkdw{
color: #B5B5B5;
font-size: 14px;
font-size: 12px;
margin-top: 5px;
}
.li .detail_box_center{
@@ -171,7 +171,7 @@ text{display: block;}
}
.li .detail_box_right .skdw{
color: #B5B5B5;
font-size: 14px;
font-size: 12px;
margin-top: 5px;
}



+ 0
- 2
pages/contract/add/add.js Visa fil

@@ -272,8 +272,6 @@ Page({
UTIL.httpRequest(API.URL_GET_CONTRACTDETAIL + this.data.id, {method:'GET'}, {
success: (res) => {
this.setData({'form':res.data});
res.data.biddingDate = res.data.biddingDate.slice(0,9)
res.data.reviewTime = res.data.reviewTime.slice(0,9)
let that = this;
//获取收入合同状态
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'type_of_contract', {method:'GET'}, {


+ 28
- 0
pages/contract/contract.js Visa fil

@@ -174,6 +174,34 @@ Page({
},
})
},
terminate(e){
UTIL.httpRequest(API.URL_GET_TERMINATEINFO+ e.currentTarget.dataset.id, {method:'GET'}, {
success: (res) => {
if(res.code==200){
let list = this.data.list
list[e.currentTarget.dataset.index].contractionStatus = '3'
this.setData({'list':list})
UTIL.showToastNoneIcon('终止成功!');
}else{
UTIL.showToastNoneIcon('终止失败!: '+res.msg);
}
}
})
},
cancel(e){
UTIL.httpRequest(API.URL_GET_CANCELINFO+ e.currentTarget.dataset.id, {method:'GET'}, {
success: (res) => {
if(res.code==200){
let list = this.data.list
list[e.currentTarget.dataset.index].contractionStatus = '2'
this.setData({'list':list})
UTIL.showToastNoneIcon('撤销成功!');
}else{
UTIL.showToastNoneIcon('撤销失败!: '+res.msg);
}
}
})
},
relevanceDelete(e){
UTIL.httpRequest(API.URL_GET_ASSETREMOVE+ e.currentTarget.dataset.id, {method:'GET'}, {
success: (res) => {


+ 20
- 2
pages/contract/contract.wxml Visa fil

@@ -16,7 +16,7 @@
<view class="add_btn" bindtap="goAdd"><text>新增</text></view>
</view>
<scroll-view scroll-y refresher-threshold="0" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<van-swipe-cell right-width="{{ 150 }}" class="workflow" wx:for="{{list}}" wx:key="index" wx:for-item="item" >
<van-swipe-cell left-width="{{ 100 }}" right-width="{{ 150 }}" class="workflow" wx:for="{{list}}" wx:key="index" wx:for-item="item" >
<view class="li" bindtap="goUpdate" data-id="{{item.id}}">
<view class="tit_box">
<image src="/image/icon/contract_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="no-referrer|origin|unsafe-url"></image>
@@ -79,6 +79,24 @@
</view>
</view>
</view>
<view slot="left" class="moreBox">
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(255,0,0,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="terminate">
<view>
<image src="../../image/icon/terminate_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color:red">终止</text>
</view>
</view>
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(179,219,98,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="cancel">
<view>
<image src="../../image/icon/cancel_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color: #B3DB62;">撤销</text>
</view>
</view>
</view>
</van-swipe-cell>
</scroll-view>

@@ -109,7 +127,7 @@
</view>
<van-swipe-cell right-width="{{ 50 }}" wx:for="{{revelanceList}}" wx:key="index" wx:for-item="item" >
<view class="tr">
<view class="th">固定资产</view>
<view class="th">{{item.assetTable=='t_asset_permanent'?"固定资产":"资源资产"}}</view>
<view class="th">{{item.name}}</view>
<view class="th">{{item.num}}{{item.unit}}</view>
</view>


+ 8
- 0
pages/contract/contract.wxss Visa fil

@@ -71,6 +71,14 @@ text{display: block;}
align-items: center;
display: flex;
}
.moreBox{
width: 100px;
text-align: center;
height: 100%;
background: #F6F6F6;
align-items: center;
display: flex;
}
.deleteBoxAsset{
width: 50px;
text-align: center;


+ 102
- 51
pages/contractAssets/fixedAssets.js Visa fil

@@ -15,6 +15,7 @@ Page({
data: {
isIPX: app.globalData.isIPX,
list:[],
list1:[],
isLoading:false,
pageNums:1,
scrollHeight:"",
@@ -27,6 +28,11 @@ Page({
itemId:"",
assetTypeOptions:[],
status:0,
index:0,
array:[
{assetTable:'t_asset_permanent',assetTableName:'固定资产'},
{assetTable:'t_asset_resource',assetTableName:'资源性资产'}
],
},
goAdd(){
wx.navigateTo({
@@ -45,6 +51,10 @@ Page({
}
})
},
bindPickerChange:function(e){
this.setData({index:e.detail.value});
this.getList()
},
/**
* 生命周期函数--监听页面加载
*/
@@ -80,64 +90,77 @@ Page({
this.getList();
},
getList:function(){
let params = {
pageNum:this.data.pageNums,
pageSize:10,
if(this.data.index == 0){
let params = {
name:this.data.name,
isMin:"Y",
useType:'2',
operationType:'1',
assetStatus:'1'
OperationType:'1',
assetStatus:'1',
isMin:'Y'
}
UTIL.httpRequest(API.URL_GET_PERMANENTLIST,params,{
success: (res) => {
let _this = this
if(res.code == 200){
if(this.data.pageNums!=1&&this.data.list.length<res.total){
let lists = this.data.list.concat(res.rows)
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
let li = lists.map( res => {
r.data.map(rr => {
if(res.assetType == rr.dictValue){
res.assetType = rr.dictLabel
}
})
return res
UTIL.httpRequest(API.URL_GET_PERMANENTLIST,params,{
success: (res) => {
let _this = this
if(res.code == 200){
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
let li = res.rows.map( ress => {
r.data.map(rr => {
if(ress.assetType == rr.dictValue){
ress.assetType = rr.dictLabel
}
})
_this.setData({list:li})
}else{
_this.setData({list:lists})
}
return ress
})
_this.setData({list:li})
}else{
_this.setData({list:res.rows})
}
})
}else if(this.data.pageNums==1){
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
let li = res.rows.map( ress => {
r.data.map(rr => {
if(ress.assetType == rr.dictValue){
ress.assetType = rr.dictLabel
}
})
return ress
}
})
}else{
UTIL.showToastNoneIcon(res.msg);
}
}
})
}else{
let params = {
name:this.data.name,
useType : '2',
status : '0'
}
UTIL.httpRequest(API.URL_GET_RESOURCELIST,params,{
success: (res) => {
let _this = this
if(res.code == 200){
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'resource_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
let li = res.rows.map( ress => {
r.data.map(rr => {
if(ress.resourceType == rr.dictValue){
ress.resourceType = rr.dictLabel
}
})
_this.setData({list:li})
}else{
_this.setData({list:res.rows})
}
return ress
})
_this.setData({list1:li})
}else{
_this.setData({list1:res.rows})
}
})
}
})
}else{
UTIL.showToastNoneIcon(res.msg);
}
}else{
UTIL.showToastNoneIcon(res.msg);
}
}
})
})
}
},
paging(){
this.setData({
@@ -155,12 +178,12 @@ Page({
this.setData({'status':1})
let data = e.currentTarget.dataset.item;
data.method = "POST";
data.assetTable = "t_asset_permanent"
data.assetTable = 't_asset_permanent'
data.assetId = e.currentTarget.dataset.item.id
data.contractionId = this.data.itemId
data.num = e.currentTarget.dataset.item.quantity
if(data.unit==""||data.unit==null){
data.unit = '1'
data.unit = ''
}
UTIL.httpRequest(API.URL_GET_ASSETADD,data,{
success: (res) => {
@@ -178,6 +201,34 @@ Page({
})
}
},
goUpdate1(e){
if(this.data.status=='0'){
this.setData({'status':1})
let data = e.currentTarget.dataset.item;
data.method = "POST";
data.assetTable = 't_asset_resource'
data.assetId = e.currentTarget.dataset.item.id
data.contractionId = this.data.itemId
data.num = e.currentTarget.dataset.item.totalArea
if(data.unit==""||data.unit==null){
data.unit = '亩'
}
UTIL.httpRequest(API.URL_GET_ASSETADD,data,{
success: (res) => {
if(res.code == 200){
UTIL.showToastNoneIcon(res.msg);
this.setData({'status':0})
wx.navigateBack({
delta: 1
})
}else{
UTIL.showToastNoneIcon(res.msg);
this.setData({'status':0})
}
}
})
}
},
delete(e){
UTIL.httpRequest(API.URL_GET_PERMANENTDELETE + e.currentTarget.dataset.id, {method:'GET'}, {
success: (res) => {


+ 47
- 7
pages/contractAssets/fixedAssets.wxml Visa fil

@@ -1,11 +1,12 @@
<!--pages/fixedAssets/fixedAssets.wxml-->
<view class="ns" id="top_ban" style="height:{{isIPX?'88px':'64px'}};">
<image src="../../image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};height: 19.0909px;" mode="widthFix" bindtap="back" referrer="no-referrer|origin|unsafe-url"></image>
<text style="top:{{isIPX?'54px':'30px'}};">可关联固定资产</text>
<text style="top:{{isIPX?'54px':'30px'}};">可关联资产</text>
</view>

<view class="search_box" id="top_view" style="margin-top:{{isIPX?'100px':'75px'}};">
<van-search
<view style="width:61%;">
<van-search
value="{{ name }}"
shape="round"
background="transparent"
@@ -13,9 +14,18 @@
clearable
bind:change="goSearch"
/>
</view>
<view style="border:1px solid #ddd;background: #fff;border-radius: 30px;padding: 0 25rpx;width:34%;margin-top: 9px;line-height: 38px;height: 38px;">
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}" range-key="assetTableName">
<view class="picker" style="text-align: center;">
{{array[index].assetTableName}}
<image src="../../image/icon/triangle.png" style="height:25rpx;width:25rpx;margin-right: 10rpx;"></image>
</view>
</picker>
</view>
</view>
<scroll-view scroll-y refresher-threshold="0" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<van-swipe-cell class="workflow" wx:for="{{list}}" wx:key="index" wx:for-item="item" >
<scroll-view scroll-y refresher-threshold="0" wx:if="{{index == '0'}}" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<van-swipe-cell class="workflow" wx:for="{{list}}" wx:key="index" wx:for-item="item">
<view class="li" bindtap="goUpdate" data-item="{{item}}">
<view class="tit_box">
<image src="/image/icon/fixedAssets_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="no-referrer|origin|unsafe-url"></image>
@@ -47,6 +57,36 @@
</view>
</van-swipe-cell>
</scroll-view>
<modal hidden="{{!showPopup}}" title="是否删除?" confirm-text="是" cancel-text="否" bindcancel="cancelTem" bindconfirm="confirmTem">
</modal>
<scroll-view scroll-y refresher-threshold="0" wx:if="{{index == '1'}}" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<van-swipe-cell class="workflow" wx:for="{{list1}}" wx:key="index" wx:for-item="item" >
<view class="li" bindtap="goUpdate1" data-item="{{item}}">
<view class="tit_box">
<image src="/image/icon/fixedAssets_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="no-referrer|origin|unsafe-url"></image>
<text class="tit">{{item.name}}</text>
<view style="flex:1;">
<text wx:if="{{item.useType=='1'}}" style="text-align: center;float:right;font-size:12px;background:rgb(235, 154, 4,0.2);color:rgb(235, 154, 4);width:50px;line-height: 20px;">自用</text>
<text wx:if="{{item.useType=='2'}}" style="text-align: center;float:right;font-size:12px;background:rgb(235, 154, 4,0.2);color:rgb(235, 154, 4);width:50px;line-height: 20px;">闲置</text>
<text wx:if="{{item.useType=='3'}}" style="text-align: center;float:right;font-size:12px;background:rgb(235, 154, 4,0.2);color:rgb(235, 154, 4);width:70px;line-height: 20px;">出租或出借</text>
<text wx:if="{{item.useType=='4'}}" style="text-align: center;float:right;font-size:12px;background:rgb(235, 4, 4,0.2);color:rgb(235, 4, 4);width:50px;line-height: 20px;">其他</text>
</view>
</view>
<view class="detail_box">
<view style="width: 55%;margin-left:5%;">{{item.code}}</view>
<view style="width: 40%;">
{{item.resourceType}}
</view>
</view>

<view class="detail_box">
<view style="width: 60%;">
<image src="/image/icon/clock_icon.png" style="width: 15px;height: 15px;border-radius:5px;margin-right: 5px;"></image>
<text>{{item.createTime}}</text>
</view>
<view style="width: 40%;text-align: right;">
数量/面积:
<text style="color:red">{{item.totalArea}}</text>
</view>
</view>
</view>
</van-swipe-cell>
</scroll-view>

+ 4
- 4
pages/finance/finance.wxml Visa fil

@@ -24,19 +24,19 @@
<view class="banner" id="top_view2">
<view class="banner_tabs">
<view>上月结余</view>
<view>¥{{data.syjc}}</view>
<view style="font-size: 12px;">¥{{data.syjc}}</view>
</view>
<view class="banner_tabs">
<view>支出</view>
<view>¥{{data.dai}}</view>
<view style="font-size: 12px;">¥{{data.dai}}</view>
</view>
<view class="banner_tabs">
<view>收入</view>
<view>¥{{data.jie}}</view>
<view style="font-size: 12px;">¥{{data.jie}}</view>
</view>
<view class="banner_tabs">
<view>本月结存</view>
<view>¥{{data.byjc}}</view>
<view style="font-size: 12px;">¥{{data.byjc}}</view>
</view>
</view>
<scroll-view scroll-y refresher-threshold="0" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">


+ 10
- 10
pages/finance/finance.wxss Visa fil

@@ -45,24 +45,21 @@
padding: 10rpx 32.5rpx;
}
.workflow .workflow_list{
height: 150rpx;
background-color: #fff;
border-radius: 24rpx;
box-shadow:0rpx 0rpx 10rpx rgba(0,0,0,.1);
margin-bottom: 20rpx;
padding:15rpx 25rpx 10rpx 35rpx;
padding:25rpx 25rpx 10rpx 35rpx;
}
.workflow .workflow_list .process_intro{
display: flex;
height: 62rpx;
align-items: center;
}

.workflow .process_intro .name{
width: 390rpx;
font-size: 34rpx;
max-width: 390rpx;
font-size: 16px;
margin-right: 30rpx;
display: flex;
flex:1;
justify-content: space-between;
align-items: center;
}
@@ -112,7 +109,7 @@
.workflow .time{
flex: 1;
text-align: right;
font-size: 32rpx;
font-size: 12px;
color: #9ea1aa;
}

@@ -135,16 +132,18 @@
width: 32rpx;
height: 32rpx;
margin-right: 12rpx;
text-align: right;
font-size: 14px;
}

.workflow .workflow_list .amount{
font-size: 38rpx;
font-size: 14px;
flex: 1;
text-align: right;
color: #f31e1f;
}
.workflow .workflow_list .amounts{
font-size: 38rpx;
font-size: 14px;
flex: 1;
text-align: right;
color:#4caf50;
@@ -192,6 +191,7 @@
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 12px;
}
.banner {
display: flex;background:#4caf50;color:#fff;text-align: center;margin:3%;border-radius: 20rpx;line-height: 50rpx;


+ 629
- 0
pages/fixedAssets/change/change.js Visa fil

@@ -0,0 +1,629 @@
// pages/contract/add/add.js
import * as UTIL from '../../../utils/util.js';
import * as API from '../../../utils/API.js';
const app = getApp();
Page({

/**
* 页面的初始数据
*/
data: {
isIPX: app.globalData.isIPX,
id:null,
form:{},
assetTypeindex:'0',
changeTypeindex:'0',
depreciationTypeindex:'0',
changeValueindex:'0',
// 折旧方式字典
depreciationTypeOptions:[],
// 资产类别字典
assetTypeOptions: [],
// 变更类型字典
changeTypeOptions: [
{ 'dictLabel':'数量/面积变更','dictValue':'1'},
{ 'dictLabel':'原值变更','dictValue':'2'},
{ 'dictLabel':'预计使用年数变更','dictValue':'3'},
{ 'dictLabel':'累计折旧变更','dictValue':'4'},
{ 'dictLabel':'已折旧年数变更','dictValue':'5'},
{ 'dictLabel':'残值率变更','dictValue':'6'},
{ 'dictLabel':'折旧方式变更','dictValue':'7'},
],
status:0,
},
back:function(){
wx.navigateBack({
delta: 1
})
},
openBox(even){
this.setData({
[even.currentTarget.dataset.name]:true
})
},
onChange(event){
this.setData({
[event.currentTarget.dataset.formname]: event.detail,
})
},
closeBox(even){
this.setData({
[even.currentTarget.dataset.name]:false
})
},
onConfirmChangeType (e) {
let obj = e.detail.value;
this.setData({
'form.changeType':this.data.changeTypeOptions[obj].dictValue,
'changeTypeindex':obj
})
},
onConfirmChangeValue(e){
let obj = e.detail.value;
this.setData({
'form.changeValue':this.data.depreciationTypeOptions[obj].dictValue,
'changeValueindex':obj
})
},
onConfirmDepreciationType(e){
let obj = e.detail.value;
this.setData({
'form.depreciationType':this.data.depreciationTypeOptions[obj].dictValue,
'depreciationTypeindex':obj
})
},
onConfirmAssetType (e) {
let obj = e.detail.value;
this.setData({
'form.assetType':this.data.assetTypeOptions[obj].dictValue,
'assetTypeindex':obj
})
},
getNewDate(date){
//date是传过来的时间戳,注意需为13位,10位需*1000
//也可以不传,获取的就是当前时间
var time
if(date){
time = new Date(date);
}else{
time = new Date();
}
var year= time.getFullYear() //年
var month = ("0" + (time.getMonth() + 1)).slice(-2); //月
var day = ("0" + time.getDate()).slice(-2); //日
var mydate = year + "-" + month + "-" + day;
return mydate
},
goSubmit:function(){
if(this.data.changeTypeindex != 6&&(this.data.form.changeValue===''||this.data.form.changeValue==null)){ //变更后值
UTIL.showToastNoneIcon('变更后值不能给你为空!');
return false;
}else if(this.data.status == '0'){
let that = this
this.setData({'status':'1'})
let data = this.data.form;
data.method = "POST";
if(this.data.changeTypeindex == 0){
data.quantity = data.changeValue
UTIL.httpRequest(API.URL_POST_UPDATEQUANTITY,data,{
success: (res) => {
that.setData({'status':'0'})
if(res.code == 200){
UTIL.showToastNoneIcon("变更成功");
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon("变更失败:"+res.msg);
}
},
fail: function (response) {
if (typeof fail === FUNCTION_TEXT) {
fail(handleFail(response));
} else {
showToastNoneIcon(API.MSG_FAIL_HTTP);
}
that.setData({'status':0})
},
complete: function (response) {
wx.hideNavigationBarLoading();
}
})
}else if(this.data.changeTypeindex == 1){
data.originalValue = data.changeValue
UTIL.httpRequest(API.URL_POST_UPDATEORIGINALVALUE,data,{
success: (res) => {
that.setData({'status':'0'})
if(res.code == 200){
UTIL.showToastNoneIcon("变更成功");
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon("变更失败:"+res.msg);
}
},
fail: function (response) {
if (typeof fail === FUNCTION_TEXT) {
fail(handleFail(response));
} else {
showToastNoneIcon(API.MSG_FAIL_HTTP);
}
that.setData({'status':0})
},
complete: function (response) {
wx.hideNavigationBarLoading();
}
})
}else if(this.data.changeTypeindex == 2){
data.expectedYears = data.changeValue
UTIL.httpRequest(API.URL_POST_UPDATEEXPECTEDYEARS,data,{
success: (res) => {
that.setData({'status':'0'})
if(res.code == 200){
UTIL.showToastNoneIcon("变更成功");
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon("变更失败:"+res.msg);
}
},
fail: function (response) {
if (typeof fail === FUNCTION_TEXT) {
fail(handleFail(response));
} else {
showToastNoneIcon(API.MSG_FAIL_HTTP);
}
that.setData({'status':0})
},
complete: function (response) {
wx.hideNavigationBarLoading();
}
})
}else if(this.data.changeTypeindex == 3){
data.depreciationValue = data.changeValue
UTIL.httpRequest(API.URL_POST_UPDATEDEPRECIATIONVALUE,data,{
success: (res) => {
that.setData({'status':'0'})
if(res.code == 200){
UTIL.showToastNoneIcon("变更成功");
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon("变更失败:"+res.msg);
}
},
fail: function (response) {
if (typeof fail === FUNCTION_TEXT) {
fail(handleFail(response));
} else {
showToastNoneIcon(API.MSG_FAIL_HTTP);
}
that.setData({'status':0})
},
complete: function (response) {
wx.hideNavigationBarLoading();
}
})
}else if(this.data.changeTypeindex == 4){
data.depreciationYears = data.changeValue
UTIL.httpRequest(API.URL_POST_UPDATEDEPRECIATIONYEARS,data,{
success: (res) => {
that.setData({'status':'0'})
if(res.code == 200){
UTIL.showToastNoneIcon("变更成功");
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon("变更失败:"+res.msg);
}
},
fail: function (response) {
if (typeof fail === FUNCTION_TEXT) {
fail(handleFail(response));
} else {
showToastNoneIcon(API.MSG_FAIL_HTTP);
}
that.setData({'status':0})
},
complete: function (response) {
wx.hideNavigationBarLoading();
}
})
}else if(this.data.changeTypeindex == 5){
data.residualsRate = data.changeValue
UTIL.httpRequest(API.URL_POST_UPDATERESIDUALSRATE,data,{
success: (res) => {
that.setData({'status':'0'})
if(res.code == 200){
UTIL.showToastNoneIcon("变更成功");
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon("变更失败:"+res.msg);
}
},
fail: function (response) {
if (typeof fail === FUNCTION_TEXT) {
fail(handleFail(response));
} else {
showToastNoneIcon(API.MSG_FAIL_HTTP);
}
that.setData({'status':0})
},
complete: function (response) {
wx.hideNavigationBarLoading();
}
})
}else if(this.data.changeTypeindex == 6){
data.depreciationType = this.data.depreciationTypeOptions[this.data.changeValueindex].dictValue
UTIL.httpRequest(API.URL_POST_UPDATEDEPRECIATIONMETHOD,data,{
success: (res) => {
that.setData({'status':'0'})
if(res.code == 200){
UTIL.showToastNoneIcon("变更成功");
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon("变更失败:"+res.msg);
}
},
fail: function (response) {
if (typeof fail === FUNCTION_TEXT) {
fail(handleFail(response));
} else {
showToastNoneIcon(API.MSG_FAIL_HTTP);
}
that.setData({'status':0})
},
complete: function (response) {
wx.hideNavigationBarLoading();
}
})
}
}
},
bindNewInput: function (e) {
this.setData({
[e.currentTarget.dataset.name]: e.detail.value
})
if(e.currentTarget.dataset.name == 'form.originalValue' ){
this.setData({
'form.netSalvage' : (this.data.form.residualsRate*e.detail.value/100).toFixed(2),
'form.perYearDepreciationValue' : ((e.detail.value-(this.data.form.residualsRate*e.detail.value/100))/this.data.form.expectedYears).toFixed(2),
'form.netValue':this.data.form.originalValue-this.data.form.depreciationValue
})
}
if(e.currentTarget.dataset.name == 'form.residualsRate' &&e.detail.value<=100){
this.setData({
'form.netSalvage' : (this.data.form.originalValue*e.detail.value/100)<this.data.form.originalValue?(this.data.form.originalValue*e.detail.value/100).toFixed(2):this.data.form.originalValue,
})
this.setData({
'form.perYearDepreciationValue' : ((this.data.form.originalValue-this.data.form.netSalvage)/this.data.form.expectedYears).toFixed(2),
})
}
if(e.currentTarget.dataset.name == 'form.residualsRate' &&e.detail.value>100){
this.setData({
'form.residualsRate' : 5,
})
}
if(e.currentTarget.dataset.name == 'form.netSalvage' ){
this.setData({
'form.perYearDepreciationValue' : ((this.data.form.originalValue-e.detail.value)/this.data.form.expectedYears).toFixed(2)
})
}
if(e.currentTarget.dataset.name == 'form.expectedYears' ){
this.setData({
'form.perYearDepreciationValue' : ((this.data.form.originalValue-this.data.form.netSalvage)/e.detail.value).toFixed(2)
})
}
if(e.currentTarget.dataset.name == 'form.depreciationYears' ){
this.setData({
'form.depreciationValue' : (this.data.form.perYearDepreciationValue*e.detail.value)>this.data.form.originalValue?this.data.form.originalValue:(this.data.form.perYearDepreciationValue*e.detail.value).toFixed(2),
'form.netValue' : (this.data.form.originalValue-(this.data.form.perYearDepreciationValue*e.detail.value))>=0?(this.data.form.originalValue-(this.data.form.perYearDepreciationValue*e.detail.value).toFixed(2)):0
})
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.id!=null&&options.id!=""){
this.setData({id:options.id})
//获取收入合同状态
UTIL.httpRequest(API.URL_GET_PERMANENTDETAIL + this.data.id, {method:'GET'}, {
success: (res) => {
this.setData({'form':res.data});
let that = this;
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
assetTypeOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.assetType){
that.setData({'assetTypeindex':ind})
}
})
}
}
})
//获取经营属性
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'operation_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
operationTypeOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.operationType){
that.setData({'operationTypeindex':ind})
}
})
}
}
})
//获取增加方式
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'add_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
addTypeOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.addType){
that.setData({'addTypeindex':ind})
}
})
}
}
})
//获取使用情况
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'use_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
useTypeOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.useType){
that.setData({'useTypeindex':ind})
}
})
}
}
})
//获取折旧方式
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'depreciation_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
depreciationTypeOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.depreciationType){
that.setData({'depreciationTypeindex':ind})
}
})
}
}
})
//获取资产状态
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_status', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
assetStatusOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.assetStatus){
that.setData({'assetStatusindex':ind})
}
})
}
}
})
//获取单位
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'fixed_assets_unit', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
unitOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.unit){
that.setData({'unitindex':ind})
}
})
}
}
})
//获取系统是否
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'sys_yes_no', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
that.setData({
sysYesNoOptions:r.data,
})
r.data.map((rr,ind) => {
if(rr.dictValue == res.data.isMin){
that.setData({'isMinindex':ind})
}
if(rr.dictValue == res.data.isFormAsset){
that.setData({'isFormAssetindex':ind})
}
})
}
}
})
}
})
}else{
let that = this;
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
assetTypeOptions:res.data,
'form.assetType':res.data[0].dictValue
})
}
}
})
//获取经营属性
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'operation_type', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
operationTypeOptions:res.data,
'form.operationType':res.data[0].dictValue
})
}
}
})
//获取增加方式
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'add_type', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
addTypeOptions:res.data,
'form.addType':res.data[0].dictValue
})
}
}
})
//获取使用情况
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'use_type', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
useTypeOptions:res.data,
'form.useType':res.data[0].dictValue
})
}
}
})
//获取折旧方式
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'depreciation_type', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
depreciationTypeOptions:res.data,
'form.depreciationType':res.data[1].dictValue
})
}
}
})
//获取资产状态
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_status', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
assetStatusOptions:res.data,
'form.assetStatus':res.data[0].dictValue
})
}
}
})
//获取单位
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'fixed_assets_unit', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
unitOptions:res.data,
'form.unit':res.data[0].dictValue
})
}
}
})
//获取是否
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'sys_yes_no', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
that.setData({
sysYesNoOptions:res.data,
'form.isMin':res.data[0].dictValue,
'form.isFormAsset':res.data[0].dictValue
})
}
}
})
}
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},

/**
* 生命周期函数--监听页面显示
*/
onShow() {

},

/**
* 生命周期函数--监听页面隐藏
*/
onHide() {

},

/**
* 生命周期函数--监听页面卸载
*/
onUnload() {

},

/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {

},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {

},

/**
* 用户点击右上角分享
*/
onShareAppMessage() {

}
})

+ 10
- 0
pages/fixedAssets/change/change.json Visa fil

@@ -0,0 +1,10 @@
{
"navigationStyle": "custom",
"usingComponents": {
"van-field": "@vant/weapp/field/index",
"van-popup": "@vant/weapp/popup/index",
"van-picker": "@vant/weapp/picker/index",
"van-calendar": "@vant/weapp/calendar/index",
"van-icon":"@vant/weapp/icon/index"
}
}

+ 280
- 0
pages/fixedAssets/change/change.wxml Visa fil

@@ -0,0 +1,280 @@
<!--pages/contract/add/add.wxml-->
<view class="ns" style="height:{{isIPX?'88px':'64px'}};">
<image src="../../../image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};height: 19.0909px;" mode="widthFix" bindtap="back" referrer="no-referrer|origin|unsafe-url"></image>
<text style="top:{{isIPX?'54px':'30px'}};">{{form.id?"":"新增"}}资产信息</text>
</view>
<view class="main-box table-box" style="margin-top:{{isIPX?'100px':'75px'}};">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/fixed_contract_icon.png" referrer="no-referrer|origin|unsafe-url" style="width: 15px;height: 15px;margin-right: 10px;"></image>
<text class="tit">基本信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 10rpx;">*</text>资产编码</text>
</view>
<view>
<input type="text" value="{{form.code}}" bindinput="bindNewInput" disabled="true" data-name="form.code" placeholder="资产编码" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 10rpx;">*</text>资产名称</text>
</view>
<view>
<input type="text" value="{{form.name}}" bindinput="bindNewInput" disabled="true" data-name="form.name" placeholder="资产名称" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 10rpx;">*</text>资产类别</view>
<picker bindchange="onConfirmAssetType" value="{{assetTypeindex}}" disabled="true" range="{{assetTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{assetTypeOptions[assetTypeindex].dictLabel?assetTypeOptions[assetTypeindex].dictLabel:"选择资产类别"}}
<van-icon name="arrow-down" />
</view>
</picker>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 10rpx;">*</text>变更类型</view>
<picker bindchange="onConfirmChangeType" value="{{changeTypeindex}}" range="{{changeTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{changeTypeOptions[changeTypeindex].dictLabel?changeTypeOptions[changeTypeindex].dictLabel:"选择变更类型"}}
<van-icon name="arrow-down" />
</view>
</picker>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;" wx:if="{{changeTypeindex == 0}}">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/target_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="nor-referrer|origin|unsafe-url"></image>
<text class="tit">变更信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>数量/面积</text>
</view>
<view>
<input type="text" value="{{form.quantity}}" bindinput="bindNewInput" disabled="true" placeholder="" data-name="form.quantity" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>变更后</text>
</view>
<view>
<input type="text" value="{{form.changeValue}}" bindinput="bindNewInput" placeholder="变更后数据" data-name="form.changeValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>备注</text>
</view>
<view>
<input type="text" value="{{form.remark}}" bindinput="bindNewInput" data-name="form.remark" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;" wx:if="{{changeTypeindex == 1}}">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/target_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="nor-referrer|origin|unsafe-url"></image>
<text class="tit">变更信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>资产原值</text>
</view>
<view>
<input type="text" value="{{form.originalValue}}" disabled="true" bindinput="bindNewInput" placeholder="" data-name="form.originalValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>变更后</text>
</view>
<view>
<input type="text" value="{{form.changeValue}}" bindinput="bindNewInput" placeholder="变更后数据" data-name="form.changeValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>备注</text>
</view>
<view>
<input type="text" value="{{form.remark}}" bindinput="bindNewInput" data-name="form.remark" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;" wx:if="{{changeTypeindex == 2}}">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/target_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="nor-referrer|origin|unsafe-url"></image>
<text class="tit">变更信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>预计使用年数</text>
</view>
<view>
<input type="text" value="{{form.expectedYears}}" disabled="true" bindinput="bindNewInput" placeholder="" data-name="form.expectedYears" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>变更后</text>
</view>
<view>
<input type="text" value="{{form.changeValue}}" bindinput="bindNewInput" placeholder="变更后数据" data-name="form.changeValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>备注</text>
</view>
<view>
<input type="text" value="{{form.remark}}" bindinput="bindNewInput" data-name="form.remark" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;" wx:if="{{changeTypeindex == 3}}">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/target_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="nor-referrer|origin|unsafe-url"></image>
<text class="tit">变更信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>累计折旧</text>
</view>
<view>
<input type="text" value="{{form.depreciationValue}}" disabled="true" bindinput="bindNewInput" placeholder="" data-name="form.depreciationValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>变更后</text>
</view>
<view>
<input type="text" value="{{form.changeValue}}" bindinput="bindNewInput" placeholder="变更后数据" data-name="form.changeValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>备注</text>
</view>
<view>
<input type="text" value="{{form.remark}}" bindinput="bindNewInput" data-name="form.remark" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;" wx:if="{{changeTypeindex == 4}}">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/target_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="nor-referrer|origin|unsafe-url"></image>
<text class="tit">变更信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>已折旧年数</text>
</view>
<view>
<input type="text" value="{{form.depreciationYears}}" disabled="true" bindinput="bindNewInput" placeholder="" data-name="form.depreciationYears" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>变更后</text>
</view>
<view>
<input type="text" value="{{form.changeValue}}" bindinput="bindNewInput" placeholder="变更后数据" data-name="form.changeValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>备注</text>
</view>
<view>
<input type="text" value="{{form.remark}}" bindinput="bindNewInput" data-name="form.remark" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;" wx:if="{{changeTypeindex == 5}}">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/target_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="nor-referrer|origin|unsafe-url"></image>
<text class="tit">变更信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>残值率</text>
</view>
<view>
<input type="text" value="{{form.residualsRate}}" disabled="true" bindinput="bindNewInput" placeholder="" data-name="form.residualsRate" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>变更后</text>
</view>
<view>
<input type="text" value="{{form.changeValue}}" bindinput="bindNewInput" placeholder="变更后数据" data-name="form.changeValue" type="digit" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>备注</text>
</view>
<view>
<input type="text" value="{{form.remark}}" bindinput="bindNewInput" data-name="form.remark" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;" wx:if="{{changeTypeindex == 6}}">
<view style="margin-bottom:15px;">
<image src="../../../image/icon/target_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="nor-referrer|origin|unsafe-url"></image>
<text class="tit">变更信息</text>
</view>
<view class="table-boxs">
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>折旧方式</text>
</view>
<picker bindchange="onConfirmDepreciationType" disabled="true" value="{{depreciationTypeindex}}" range="{{depreciationTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{depreciationTypeOptions[depreciationTypeindex].dictLabel?depreciationTypeOptions[depreciationTypeindex].dictLabel:"选择折旧方式"}}
<van-icon name="arrow-down" />
</view>
</picker>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>变更后</text>
</view>
<picker bindchange="onConfirmChangeValue" value="{{changeValueindex}}" range="{{depreciationTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{depreciationTypeOptions[changeValueindex].dictLabel?depreciationTypeOptions[changeValueindex].dictLabel:"选择折旧方式"}}
<van-icon name="arrow-down" />
</view>
</picker>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>备注</text>
</view>
<view>
<input type="text" value="{{form.remark}}" bindinput="bindNewInput" data-name="form.remark" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
</view>
</view>
<view class="bottom">
<view class="btn2" bindtap="goSubmit">保存</view>
</view>

+ 69
- 0
pages/fixedAssets/change/change.wxss Visa fil

@@ -0,0 +1,69 @@
/* pages/payee/add/add.wxss */
.main-box{
background: #ffffff;
padding: 20px;
width: 94%;
margin: 0 auto;
border-radius: 10px;
box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.16);
}
.table-box van-field van-cell .van-cell{
margin-bottom: 15px;
}
.table-box van-field:last-child van-cell .van-cell{
margin-bottom: 0px;
}
.van-cell{
padding: 0!important;
margin-bottom: 15px;
}
.van-cell__value {
display: flex;
justify-content: flex-end;
}
.van-radio--horizontal {
margin-right: 0!important;
margin-left: var(--padding-sm,12px)
}
.van-cell--required:before {
left: 0!important;
}

.van-field__label {
padding-left: 10px;
}
.tit{
line-height: 20px;
font-size: 16px;
font-weight: bold;
}
.bottom{
width: 100%;
margin: 0 auto;
text-align: center;
margin-top: 30px;
margin-bottom: 30px;
display: flex;
}

.bottom view {
width: 47%;
margin: 0 auto;
border-radius: 30px;
display: inline-block;
}

.bottom .btn2{
border: 1px solid transparent;
padding: 8px 0px;
background-image: linear-gradient(to right, #2C8E68, #5CAE77);
color: #fff;
}
.table-boxs>view{
display: flex;
justify-content: space-between;
line-height: 80rpx;
}
.table-box text{
line-height: 80rpx;
}

+ 52
- 1
pages/fixedAssets/fixedAssets.js Visa fil

@@ -1,4 +1,4 @@
// pages/bank/bank.js
// pages/fixedAssets/fixedAssets.js
import * as UTIL from '../../utils/util.js';
import * as API from '../../utils/API.js';
let EVN_CONFIG = require('../../env/env');
@@ -159,6 +159,57 @@ Page({
url: '/pages/fixedAssets/add/add?id='+e.currentTarget.dataset.id,
})
},
scrap(e){
console.log(e.currentTarget.dataset.data.id,e.currentTarget.dataset.data.index);
if(e.currentTarget.dataset.data.assetStatus != 1){
UTIL.showToastNoneIcon('只允许修改资产状态为正常的资产!');
return false;
}else if(e.currentTarget.dataset.data.useType == 3){
UTIL.showToastNoneIcon('使用状态为出租或出借不允许操作!');
return false;
}else{
UTIL.httpRequest(API.URL_GET_UPDATERSCRAP + e.currentTarget.dataset.data.id , {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
new_list.splice(e.currentTarget.dataset.data.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('报废成功!');
}else{
UTIL.showToastNoneIcon('报废失败!:'+res.msg);
}
}
})
}
},
sell(e){
console.log(e.currentTarget.dataset.data.id,e.currentTarget.dataset.data.index);
if(e.currentTarget.dataset.data.assetStatus != 1){
UTIL.showToastNoneIcon('只允许修改资产状态为正常的资产!');
return false;
}else if(e.currentTarget.dataset.data.useType == 3){
UTIL.showToastNoneIcon('使用状态为出租或出借不允许操作!');
return false;
}else{
UTIL.httpRequest(API.URL_GET_UPDATERSALE + e.currentTarget.dataset.data.id , {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
new_list.splice(e.currentTarget.dataset.data.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('出售成功!');
}else{
UTIL.showToastNoneIcon('出售失败!:'+res.msg);
}
}
})
}
},
change(e){
wx.navigateTo({
url: '/pages/fixedAssets/change/change?id='+e.currentTarget.dataset.id,
})
},
delete(e){
this.setData({
'itemId':e.currentTarget.dataset.id,


+ 27
- 1
pages/fixedAssets/fixedAssets.wxml Visa fil

@@ -16,7 +16,7 @@
<view class="add_btn" bindtap="goAdd"><text>新增</text></view>
</view>
<scroll-view scroll-y refresher-threshold="0" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<van-swipe-cell right-width="{{ 130 }}" class="workflow" wx:for="{{list}}" wx:key="index" wx:for-item="item" >
<van-swipe-cell right-width="{{ 130 }}" left-width="{{ 90 }}" class="workflow" wx:for="{{list}}" wx:key="index" wx:for-item="item" >
<view class="li" bindtap="goUpdate" data-id="{{item.id}}">
<view class="tit_box">
<image src="/image/icon/fixedAssets_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="no-referrer|origin|unsafe-url"></image>
@@ -46,6 +46,24 @@
</view>
</view>
</view>
<view slot="left" class="moreBox" >
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(165,165,165,0.2);" data-data="{{item}}" data-index="{{index}}" bindtap="scrap">
<view>
<image src="../../image/icon/scrap_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color:#A5A5A5">报废</text>
</view>
</view>
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(238,95,0,0.2);" data-data="{{item}}" data-index="{{index}}" bindtap="sell">
<view>
<image src="../../image/icon/sell_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color: rgb(238,95,0);">出售</text>
</view>
</view>
</view>
<view slot="right" class="deleteBox">
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(255,0,0,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="delete">
<view>
@@ -63,6 +81,14 @@
<text style="color: #62AD66;">附件</text>
</view>
</view>
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(239,135,7,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="change">
<view>
<image src="../../image/icon/relevance_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color: rgb(239,135,7);">变更</text>
</view>
</view>
</view>
</van-swipe-cell>
</scroll-view>


+ 8
- 0
pages/fixedAssets/fixedAssets.wxss Visa fil

@@ -71,6 +71,14 @@ text{display: block;}
align-items: center;
display: flex;
}
.moreBox{
width: 90px;
text-align: center;
height: 100%;
background: #F6F6F6;
align-items: center;
display: flex;
}
.workflow .workflow_list{
height: 150rpx;
background-color: #fff;


+ 8
- 0
pages/index/index.wxml Visa fil

@@ -101,6 +101,14 @@
<view class="image"><image class="attribute" src="../../image/index/child_function_10.png" mode="aspectFit"></image></view>
<text class="desc">固定资产</text>
</view>
<view class="flex_block" data-url="/pages/paymentManager/paymentManager" bindtap="navigate" hover-class="btnView">
<view class="image"><image class="attribute" src="../../image/index/paymentManager_icon.png" mode="aspectFit"></image></view>
<text class="desc">支付管理</text>
</view>
<view class="flex_block" data-url="/pages/majorEvent/majorEvent" bindtap="navigate" hover-class="btnView">
<view class="image"><image class="attribute" src="../../image/index/majorEvent_icon.png" mode="aspectFit"></image></view>
<text class="desc">重大事项</text>
</view>
</block>
<view class="flex_block" bindtap="openView" hover-class="btnView">
<view class="image"><image class="attribute" src="../../image/index/child_function_06.png" mode="aspectFit"></image></view>


+ 228
- 0
pages/majorEvent/add/add.js Visa fil

@@ -0,0 +1,228 @@
// pages/bankDraft/add/add.js
import * as UTIL from '../../../utils/util.js';
import * as API from '../../../utils/API.js';
let EVN_CONFIG = require('../../../env/env');
const DISTRIBUTE_ENVIROMENT = 'IMGURL';
let {
URL_PREFIX,
} = EVN_CONFIG[DISTRIBUTE_ENVIROMENT];
const app = getApp();
Page({

/**
* 页面的初始数据
*/
data: {
isIPX: app.globalData.isIPX,
form:{
eventTime: "2020-01-01", //开票日期 必填
remark: "",
},
showBtn:true,
showEventTime:false,
status:0,
},

/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let that = this
if(options.id!=null&&options.id!=""){
this.setData({id:options.id})
UTIL.httpRequest(API.URL_GET_MAJOREVENTGET + this.data.id, {method:'GET'}, {
success: (res) => {
console.log(res);
if(res.data.auditStatus!='0'&&res.data.auditStatus!='2'){
this.setData({'showBtn':false});
}
this.setData({'form':res.data})
this.selectComponent('#hf_editor').setHtml(res.data.eventContent);
}
})
}else{
this.onShow()
}
},
onConfirmEventTime(e){
let data = this.getNewDate(new Date(e.detail.value));
this.setData({'form.eventTime':data});
},
getHtml(e) {//从组件获取值
this.data.form.eventContent = e.detail.content.html
},
insertImage(){ //图片上传插入示例
wx.chooseImage({
count: 1,
success: r => {
// 本地测试图片插入
// this.selectComponent('#hf_editor').insertSrc(res.tempFilePaths[0]);

wx.uploadFile({ //调用图片上传接口
url: URL_PREFIX+'/common/upload',
filePath: r.tempFilePaths[0],
name: 'imgFile',
success: res => {
console.log();
let imgUrl = JSON.parse(res.data).url
this.selectComponent('#hf_editor').insertSrc(URL_PREFIX+'/common/upload' + imgUrl);//调用组件insertSrc方法
}
})
}
})
},
getNewDate(date){
//date是传过来的时间戳,注意需为13位,10位需*1000
//也可以不传,获取的就是当前时间
var time
if(date){
time = new Date(date);
}else{
time = new Date();
}
var year= time.getFullYear() //年
var month = ("0" + (time.getMonth() + 1)).slice(-2); //月
var day = ("0" + time.getDate()).slice(-2); //日
var mydate = year + "-" + month + "-" + day;
return mydate
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},

/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
openBox(even){
console.log(even.currentTarget.dataset.name);
this.setData({
[even.currentTarget.dataset.name]:true
})
},
onChange(event){
console.log(event);
this.setData({
[event.currentTarget.dataset.value]: event.detail,
})
},
closeBox(even){
console.log(even.currentTarget.dataset.name);
this.setData({
[even.currentTarget.dataset.name]:false
})
},
goSubmit(){
if(this.data.form.eventName===''||this.data.form.eventName==null){ //事项名称
UTIL.showToastNoneIcon('请填写事项名称!');
return false;
}else if(this.data.form.eventTime===''||this.data.form.eventTime==null){ //事项时间
UTIL.showToastNoneIcon('事项时间不能为空!');
return false;
}else if(this.data.form.eventContent===''||this.data.form.eventContent==null){ //事项内容
UTIL.showToastNoneIcon('事项内容不能为空!');
return false;
}else if(this.data.status=='0'){
this.setData({'status':'1'})
var that = this;
that.data.form.method = 'POST';
that.data.form.eventContent = that.data.form.eventContent.replace(/\\/g,"/")
console.log(that.data.form);
if(that.data.form.id==""||that.data.form.id==null){
UTIL.httpRequest(API.URL_POST_MAJOREVENTADD, that.data.form , {
success: (res) => {
this.setData({'status':0})
if(res.code == 200){
UTIL.showToastNoneIcon('新增成功');
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon('新增失败:'+res.msg);
}
}
})
}else{
UTIL.httpRequest(API.URL_POST_MAJOREVENTUPDATE, that.data.form , {
success: (res) => {
this.setData({'status':0})
if(res.code == 200){
UTIL.showToastNoneIcon('修改成功');
setTimeout(function(){
wx.navigateBack({
delta:1
})
},2000)
}else{
UTIL.showToastNoneIcon('修改失败:'+res.msg);
}
}
})
}
}
},
onConfirmTime(event){
this.setData({
[event.currentTarget.dataset.name]: false,
[event.currentTarget.dataset.value]: UTIL.formatDate(event.detail),
});
},
openBox(even){
console.log(even.currentTarget.dataset.name);
this.setData({
[even.currentTarget.dataset.name]:true
})
},
closeBox(even){
console.log(even.currentTarget.dataset.name);
this.setData({
[even.currentTarget.dataset.name]:false
})
},
back:function(){
wx.navigateBack({
delta: 1
})
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {

},

/**
* 生命周期函数--监听页面卸载
*/
onUnload() {

},

/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {

},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {

},

/**
* 用户点击右上角分享
*/
onShareAppMessage() {

}
})

+ 21
- 0
pages/majorEvent/add/add.json Visa fil

@@ -0,0 +1,21 @@
{
"navigationStyle": "custom",
"usingComponents": {
"van-row": "@vant/weapp/row/index",
"van-col": "@vant/weapp/col/index",
"van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index",
"van-tag": "@vant/weapp/tag/index",
"van-icon": "@vant/weapp/icon/index",
"van-steps": "@vant/weapp/steps/index",
"van-button": "@vant/weapp/button/index",
"van-radio": "@vant/weapp/radio/index",
"van-radio-group": "@vant/weapp/radio-group/index",
"van-field": "@vant/weapp/field/index",
"van-popup": "@vant/weapp/popup/index",
"van-picker": "@vant/weapp/picker/index",
"van-calendar": "@vant/weapp/calendar/index",
"van-datetime-picker": "@vant/weapp/datetime-picker/index",
"hf_editor": "/component/editor/editor"
}
}

+ 24
- 0
pages/majorEvent/add/add.wxml Visa fil

@@ -0,0 +1,24 @@
<!--pages/payee/add/add.wxml-->
<view class="ns" style="height:{{isIPX?'88px':'64px'}};">
<image src="/image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};height: 19.0909px;" mode="widthFix" bindtap="back"></image>
<text style="top:{{isIPX?'54px':'30px'}};">{{form.id?"":"新增"}}重大项目</text>
</view>
<view class="main-box table-box table-boxs" style="margin-top:{{isIPX?'100px':'75px'}};">

<van-field label="项目名称" value="{{ form.eventName }}" placeholder="项目名称" border="{{ false }}" bind:change="onChange" input-align="right" required data-value="form.eventName"/>
<view class="section" style="margin-top: -28rpx;">
<view class="section__title"><text style="color:red;margin-right: 8rpx;">*</text>发生日期</view>
<picker mode="date" value="{{form.eventTime}}" bindchange="onConfirmEventTime">
<view class="picker">
{{form.eventTime?form.eventTime:'发生日期'}}
</view>
</picker>
</view>
<view style="width:100%;">
<hf_editor style="width:100%" height="600rpx" insertPicture="{{true}}" placeholder="编写文章..." bind:Content="getHtml" bind:insertImage="insertImage" id="hf_editor"/>
</view>
<van-field label="备注" value="{{ form.remark }}" placeholder="备注" border="{{ false }}" bind:change="onChange" input-align="right" data-value="form.remark"/>
</view>
<view class="bottom" wx:if="{{showBtn}}">
<view class="btn2" bindtap="goSubmit">保存</view>
</view>

+ 103
- 0
pages/majorEvent/add/add.wxss Visa fil

@@ -0,0 +1,103 @@
/* pages/payee/add/add.wxss */
.main-box{
background: #ffffff;
padding: 20px;
width: 94%;
margin: 0 auto;
border-radius: 10px;
box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.16);
}
.table-box van-field van-cell .van-cell{
margin-bottom: 15px;
}
.table-box van-field:last-child van-cell .van-cell{
margin-bottom: 0px;
}
.van-cell{
padding: 0!important;
margin-bottom: 15px;
}
.van-cell__value {
display: flex;
justify-content: flex-end;
}
.van-radio--horizontal {
margin-right: 0!important;
margin-left: var(--padding-sm,12px)
}
.van-cell--required:before {
left: 0!important;
}

.van-field__label {
padding-left: 10px;
}

.bottom{
width: 100%;
margin: 0 auto;
text-align: center;
margin-top: 30px;
margin-bottom: 30px;
display: flex;
position: absolute;
bottom: 10%;
}

.bottom view {
width: 47%;
margin: 0 auto;
border-radius: 30px;
display: inline-block;
}

.bottom .btn2{
border: 1px solid transparent;
padding: 8px 0px;
background-image: linear-gradient(to right, #2C8E68, #5CAE77);
color: #fff;
}
.table-boxs>view{
display: flex;
justify-content: space-between;
line-height: 100rpx;
}
.ql-container {
box-sizing: border-box;
width: 100%;
height: 400px;
font-size: 16px;
line-height: 1.5;
overflow: auto;
padding: 10px 10px 20px 10px;
border: 1px solid #ECECEC;
}

.ql-active {
color: #22C704;
}

.iconfont {
display: inline-block;
width: 30px;
height: 30px;
cursor: pointer;
font-size: 20px;
}

.toolbar {
box-sizing: border-box;
padding: 0 10px;
height: 50px;
width: 100%;
position: absolute;
left: 0;
right: 100%;
top: 0;
display: flex;
align-items: center;
justify-content: space-between;
border: 1px solid #ECECEC;
border-left: none;
border-right: none;
}

+ 398
- 0
pages/majorEvent/majorEvent.js Visa fil

@@ -0,0 +1,398 @@
// pages/project/project.js
import * as UTIL from '../../utils/util.js';
import * as API from '../../utils/API.js';
let EVN_CONFIG = require('../../env/env');
const DISTRIBUTE_ENVIROMENT = 'IMGURL';
let {
URL_PREFIX,
} = EVN_CONFIG[DISTRIBUTE_ENVIROMENT];
const app = getApp();
Page({

/**
* 页面的初始数据
*/
data: {
isIPX: app.globalData.isIPX,
eventName:"",
value:'',
pageNums:1,
showUpload:false,
uploadOptions:[],
fileList:[],
itemId:"",
itemIndex:"",
list:[],
fileEvent:{},
showPopupDel:false,
showPopupSubmit:false,
},

/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
var _this = this;
let qu = wx.createSelectorQuery()
qu.select("#top_view").boundingClientRect()
qu.exec(res => {
_this.setData({
scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
})
})
//获取附件字典
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'common_attach', {method:'GET'}, {
success: (res) => {
this.setData({
uploadOptions:res.data,
})
}
})
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
this.onShow();
},
goSearch(e){
this.setData({eventName:e.detail})
this.onShow();
},
goAdd(){
wx.navigateTo({
url: 'add/add',
})
},
back:function(){
wx.navigateBack({
delta: 1
})
},

goUpdate(e){
wx.navigateTo({
url: 'add/add?id='+ e.currentTarget.dataset.id,
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
var that = this;
let params = {
pageNum : this.data.pageNum,
pageSize: 10,
eventName: this.data.eventName,
method:'GET'
}
UTIL.httpRequest(API.URL_GET_MAJOREVENTLIST, params, {
success: (res) => {
this.setData({
list:res.rows
});
}
})
},
submit(e){
this.setData({
'itemId':e.currentTarget.dataset.id,
'itemIndex':e.currentTarget.dataset.index,
"showPopupSubmit":true
});
},
confirmTemSub(){
this.setData({
"showPopupSubmit":false
});
UTIL.httpRequest(API.URL_GET_MAJOREVENTSUBMIT + this.data.itemId , {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
new_list[this.data.itemIndex].auditStatus = '1'
this.setData({'list':new_list})
UTIL.showToastNoneIcon('提交成功');
}else{
UTIL.showToastNoneIcon('提交失败!');
}
}
})
},
cancelTemSub(){
this.setData({
"itemId":"",
"itemIndex":"",
"showPopupSubmit":false
});
},
delete(e){
this.setData({
'itemId':e.currentTarget.dataset.id,
'itemIndex':e.currentTarget.dataset.index,
"showPopupDel":true
});
},
cancelTemDel:function(e){
this.setData({
"itemId":"",
"itemIndex":"",
"showPopupDel":false
});
},
confirmTemDel:function(e){
this.setData({
"showPopupDel":false
});
UTIL.httpRequest(API.URL_GET_MAJOREVENTDELETE + this.data.itemId , {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
new_list.splice(this.data.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('删除成功!');
}else{
UTIL.showToastNoneIcon('删除失败!');
}
}
})
},
changeTab(e){
var that = this ;
that.setData({value1:e.detail})

UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'order_type', {method:'GET'}, {
success: (res) => {
UTIL.httpRequest(API.URL_GET_GETMONEYORDERLIST, {method:'GET',orderType:that.data.value1,orderStatus:that.data.value2},{
success: (response) => {
if (response.code == API.SUCCESS_CODE) {
for (let i = 0; i < response.rows.length; i++) {
response.rows[i].orderTypeText = UTIL.getTransform(response.rows[i].orderType,res.data);
response.rows[i].startTime = response.rows[i].startTime.replace(/-/g,".");
response.rows[i].endTime = response.rows[i].endTime.replace(/-/g,".");
response.rows[i].orderAmount = parseFloat(response.rows[i].orderAmount).toFixed(2);
}
that.setData({
moneyorderList:response.rows
})
}
}
})
}
})
},
changeTab2(e){
var that = this ;
that.setData({value2:e.detail})

UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'order_type', {method:'GET'}, {
success: (res) => {
UTIL.httpRequest(API.URL_GET_GETMONEYORDERLIST, {method:'GET',orderType:that.data.value1,orderStatus:that.data.value2},{
success: (response) => {
if (response.code == API.SUCCESS_CODE) {
for (let i = 0; i < response.rows.length; i++) {
response.rows[i].orderTypeText = UTIL.getTransform(response.rows[i].orderType,res.data);
response.rows[i].startTime = response.rows[i].startTime.replace(/-/g,".");
response.rows[i].endTime = response.rows[i].endTime.replace(/-/g,".");
response.rows[i].orderAmount = parseFloat(response.rows[i].orderAmount).toFixed(2);
}
that.setData({
moneyorderList:response.rows
})
}
}
})
}
})
},
upload(e){
this.setData({itemId:e.currentTarget.dataset.id});
this.asyncFun(e.currentTarget.dataset.id)
},
asyncFun(id){
this.setData({"fileList":[]})
let uploadList = this.data.uploadOptions
let newList = []
let _this = this
uploadList.map( res => {
let oData = {
tableId: id,
tableName: "t_yinnong_majorevent", //上传表
bizPath: "yinnong",
fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
method:'GET'
}
UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
success: (rr) => {
if(rr.code==200&&rr.rows.length>0){
rr.rows.map((rrr,index) => {
rrr.url = URL_PREFIX + rrr.fileUrl
if(index==rr.rows.length-1){
newList.push(Object.assign({},res,{"list":rr.rows}))
_this.setData({"fileList":_this.data.fileList.concat(newList)});
_this.setData({"showUpload":true})
}
})
}else{
let newuploadList = uploadList
newuploadList.map(rd => {
rd.list = newList
})
_this.setData({"fileList":newuploadList});
_this.setData({"showUpload":true})
}
},
fail:(rr) =>{

},
complete:(rr) => {

}
})
})
},
closeBox(){
this.setData({"showUpload":false})
},
deleteImg(event){
this.setData({"fileEvent":event})
this.setData({"showPopup":true});
},
cancelTem:function(e){
this.setData({"fileEvent":"{}"});
this.setData({"showPopup":false});
},
confirmTem:function(e){
let event = this.data.fileEvent
UTIL.httpRequest(API.URL_GET_GETFILEREMOVE+event.detail.file.id , {method:'GET'}, {
success: (res) => {
if(res.code==200){
let ll = this.data.fileList
var jsonlist = ll[event.target.dataset.idx].list;
jsonlist.splice(event.detail.index, 1)
ll[event.target.dataset.idx].list = jsonlist
this.setData({"fileList":ll})
this.setData({showPopup:false});
wx.showToast({
title: '删除成功!',
icon: 'success',
duration: 2000,
})
}
}
})
},
uploadFile(uploadFile,event) {
let _this = this
return new Promise((resolve, reject) => {
wx.uploadFile({
url: API.URL_GET_UPLOAD,
filePath: uploadFile.file.file.url,
name: 'file',
header: {
"Content-Type": "multipart/form-data",//记得设置
"chartset":"utf-8",
'Authorization':'Bearer '+getApp().globalData.userInfo.token
},
formData:uploadFile,
success: (res) => {
res.data = JSON.parse(res.data);
if(res.statusCode == 200){
let files = _this.data.fileList
let fName = res.data.fileUrl.split('/')
let fLength = fName.length
files[event.currentTarget.dataset.idx].list.push({
"fileName": fName[fLength-1],
"fileType": "0",
"fileUrl":res.data.fileUrl ,
"id": res.data.id,
"tableId": 6,
"url":URL_PREFIX+res.data.fileUrl
})
_this.setData({"fileList":files})
wx.hideLoading()
}
},
fail: (err) => {
//上传失败:修改pedding为reject
reject(err)
}
});
})
},
afterRead(event) {
let _this = this
wx.showLoading({
title: '上传中...'
})
let fileForm={
file: event.detail,
fileType:event.currentTarget.dataset.idx,
tableName: "t_yinnong_majorevent", //上传表
bizPath: "yinnong",
tableId:_this.data.itemId
}
this.uploadFile(fileForm,event)
},
lookDown(file,detail){
// 获取指定字符串最后一次出现的位置,返回index
var index1 = file.detail.url.lastIndexOf('.');
// substr(start, length) 抽取从start下标开始的length个字符,返回新的字符串;
var style = file.detail.url.substr(index1 + 1)
//判断图片类型,不需要下载,不做处理
if(style=='png'||style=='jpg'||style=='jpeg'||style=='bmp'||style=='gif'||style=='webp'||style=='psd'||style== 'svg'||style=='tiff'){
//判断非图片类型
}else{
wx.downloadFile({
url: file.detail.url,
success(data){
wx.openDocument({
filePath: data.tempFilePath,
fileType: style,
showMenu:true,
success(res){
}
})
}
})
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {

},

/**
* 生命周期函数--监听页面卸载
*/
onUnload() {

},

/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {

},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {

},

/**
* 用户点击右上角分享
*/
onShareAppMessage() {

}
})

+ 17
- 0
pages/majorEvent/majorEvent.json Visa fil

@@ -0,0 +1,17 @@
{
"usingComponents": {
"van-checkbox": "@vant/weapp/checkbox/index",
"van-checkbox-group": "@vant/weapp/checkbox-group/index",
"van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index",
"van-search": "@vant/weapp/search/index",
"van-radio": "@vant/weapp/radio/index",
"van-radio-group": "@vant/weapp/radio-group/index",
"van-swipe-cell": "@vant/weapp/swipe-cell/index",
"van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
"van-dropdown-item": "@vant/weapp/dropdown-item/index",
"van-tag": "@vant/weapp/tag/index",
"van-action-sheet": "@vant/weapp/action-sheet/index",
"van-upload": "@vant/weapp/uploader/index"
}
}

+ 91
- 0
pages/majorEvent/majorEvent.wxml Visa fil

@@ -0,0 +1,91 @@
<!--pages/bank/bank.wxml-->
<view class="ns" style="height:{{isIPX?'88px':'64px'}};">
<image src="../../image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};height: 19.0909px;" mode="widthFix" bindtap="back"></image>
<text style="top:{{isIPX?'54px':'30px'}};">重大事项</text>
</view>

<view class="search_box" id="top_view" style="margin-top:{{isIPX?'100px':'75px'}};">
<van-search
value="{{ eventName }}"
shape="round"
background="transparent"
placeholder="请输入事项名称"
clearable
bind:change="goSearch"
/>
<view class="add_btn" bindtap="goAdd"><text>新增</text></view>
</view>
<scroll-view scroll-y refresher-threshold="0" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<van-swipe-cell right-width="{{ 130 }}" class="workflow" wx:for="{{list}}" wx:key="index">
<view class="li" bindtap="goUpdate" data-id="{{item.id}}">
<view class="tit_box">
<view class="tit_box_left">
<image src="/image/icon/icon_gc.png" style="width: 17px; height: 15px;"></image>
<text class="tit">{{item.eventName}}</text>
</view>
</view>
<view class="detail_time_box">
<view class="detail_time">
<image src="/image/icon/icon_date.png" style="width: 14px;height: 14px;"></image>
<text>{{item.eventTime}}</text>
</view>
<view class="detail_time">
<text class="detail_box_money" wx:if="{{item.auditStatus==0}}" style="color:#000">草稿</text>
<text class="detail_box_money" wx:if="{{item.auditStatus==1}}" style="color:#e6a23c;">待审</text>
<text class="detail_box_money" wx:if="{{item.auditStatus==2}}" style="color:#f56c6c;">驳回</text>
<text class="detail_box_money" wx:if="{{item.auditStatus==3}}" style="color:#67c23a;">通过</text>
</view>
</view>
</view>
<view slot="right" class="deleteBox">
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(255,0,0,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="delete" wx:if="{{item.auditStatus==0||item.auditStatus==2}}">
<view>
<image src="../../image/apply/icon_delete.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color:red">删除</text>
</view>
</view>
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(98,173,102,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="upload">
<view>
<image src="../../image/icon/upload_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color: #62AD66;">附件</text>
</view>
</view>
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(239,135,7,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="submit" wx:if="{{item.auditStatus==0||item.auditStatus==2}}">
<view>
<image src="../../image/icon/relevance_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color: rgb(239,135,7);">提交</text>
</view>
</view>
</view>
</van-swipe-cell>
</scroll-view>
<van-action-sheet show="{{showUpload}}" title="附件" bind:close="closeBox">
<scroll-view scroll-y="true" style="height: 600rpx;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-top="0">
<view class="fj-box">
<view class="fj-li" wx:for="{{fileList}}" wx:key="index" wx:for-item="item" >
<view>
<text>{{item.dictLabel}}</text>
</view>
<view class="img_box">
<view class="img_li">
<van-upload file-list="{{ item.list }}" bind:after-read="afterRead" bind:delete="deleteImg" bind:click-preview="lookDown" data-idx="{{index}}">
</van-upload>
</view>
</view>
</view>
</view>
</scroll-view>
</van-action-sheet>
<modal hidden="{{!showPopup}}" title="是否删除?" confirm-text="是" cancel-text="否" bindcancel="cancelTem" bindconfirm="confirmTem">
</modal>
<modal hidden="{{!showPopupDel}}" title="是否删除?" confirm-text="是" cancel-text="否" bindcancel="cancelTemDel" bindconfirm="confirmTemDel">
</modal>
<modal hidden="{{!showPopupSubmit}}" title="是否提交?" confirm-text="是" cancel-text="否" bindcancel="cancelTemSub" bindconfirm="confirmTemSub">
</modal>

+ 347
- 0
pages/majorEvent/majorEvent.wxss Visa fil

@@ -0,0 +1,347 @@
/* pages/bank/bank.wxss */
.van-search__content {
border: 1px solid #5CAE77!important;
background: #fff!important;
}
van-search {
flex: 0.8;
}
.search_box{
display: flex;
}
.add_btn{
flex: 0.2;
padding: var(--search-padding,10px 12px);
padding-left: 0;
}
.add_btn text{
background-color: #62AD66;
display: block;
height: 100%;
text-align: center;
line-height: 36px;
color: #fff;
border-radius: 36px;
box-shadow: 0px 5px 5px #ddd;
}
text{display: block;}
.work_plan{
padding: 40rpx 32.5rpx 30rpx;
display: flex;
}

.work_plan .menu_item{
background-color: #fff;
box-shadow: 2px 5px 5px #ddd;
border-radius: 60rpx;
text-align: center;
position: relative;
margin-right: 20px;
padding: 8px 10px;
}
.work_plan .menu_item.active{
background-color: #2C8E68;
color: #fff;
}
.work_plan .menu_item .remind{
height: 30rpx;
background: #e90101;
color: #fff;
font-size: 26rpx;
position: absolute;
line-height: 30rpx;
padding:0 10rpx;
border-radius: 25px;
top: -10rpx;
right: -10rpx;
}

.work_plan .more{
flex: 1;
text-align: center;
line-height: 60rpx;
font-size: 36rpx;
color: #31936c;
}
.deleteBox{
width: 130px;
text-align: center;
height: 100%;
background: #F6F6F6;
align-items: center;
display: flex;
}
.workflow .workflow_list{
height: 150rpx;
background-color: #fff;
border-radius: 24rpx;
box-shadow:0rpx 0rpx 10rpx rgba(0,0,0,.1);
margin-bottom: 20rpx;
padding:15rpx 25rpx 10rpx 35rpx;
}
.workflow .workflow_list .process_intro{
display: flex;
height: 62rpx;
align-items: center;
}

.workflow .process_intro .name{
width: 390rpx;
font-size: 34rpx;
margin-right: 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.workflow .process_intro .name .name_tit{
width: 290rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.van-swipe-cell {
width: 94%;
background: #fff;
border-radius: 10px;
box-shadow: 2px 5px 5px #ddd;
margin: 0 auto;
margin-bottom: 15px;
}
.li{
width: 100%;
padding: 14px;
}
.tit_box{
display: flex;
justify-content: space-between;
}
.tit_box_left{
display: flex;
align-items: center;
}
.detail_box{
margin-top: 10px;
display: flex;
justify-content: space-between;
}
.detail_box text{
color:#878787;
}
.fkmc {
line-height: 20px;
font-size: 16px;
}
.detail_time .detail_box_money{
font-size: 14px;
}
.detail_time_box{
display: flex;
justify-content: space-between;
margin-top: 10px;
}
.detail_time{
display: flex;
align-items: center;
padding-left: 3px;
}
.detail_time text{
font-size: 12px;
margin-left: 5px;
color: #878787;
}
.li .detail_box_left text{
text-align: center;
}
.li .detail_box_left .fkdw{
color: #B5B5B5;
font-size: 14px;
margin-top: 5px;
}
.li .detail_box_center{
color: #666666;
font-size: 12px;
text-align: center;
}
.li .detail_box_right text{
text-align: center;
}
.li .detail_box_right .skdw{
color: #B5B5B5;
font-size: 14px;
margin-top: 5px;
}

.li .fksr{
display: flex;
align-items: center;
margin-top: 15px;
color: #2C8E68;
font-size: 16px;
}
.li .wtj{
display: flex;
align-items: center;
justify-content: center;
padding: 3px 8px;
border-radius: 5px;
font-size: 14px;
}
.no{
background-color:#fbe3e3;
color: #e90000;
}
.white{
background-color:#feeadc;
color: #fc9a55;
}
.yes{
background-color:#ddeee3;
color: #5cae77;
}
.other{
background-color:#f0f1f6;
color: #878787;
}
.li .tit{
font-size: 16px;
color: #333333;
line-height: 25px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
word-break: break-all;
overflow: hidden;
margin-left: 5px;
}
.li .fj_name{
font-size: 14px;
color: #B3DB62;
line-height: 25px;
}
.li .time{
font-size: 14px;
color: #9B9CAA;
}
.li .money{
font-size: 18px;
color: #5CAE77;
}
.tit_type{
display: flex;
align-items: center;
}
.tit_type text{
background: rgba(92, 174, 119, 0.2);
color: #5CAE77;
padding: 2px 10px;
}
.van-checkbox__label {
display: flex;
justify-content: space-between;
width: 100%;
}

.van-checkbox__icon-wrap {
border-radius: 5px;
}
.van-checkbox__icon {
border-radius: 5px;
border: 2px solid #2C8E68!important;
background-color: rgba(44, 142, 104, 0.2);
}
.bottom{
width: 100%;
margin: 0 auto;
text-align: center;
padding: 15px 0;
display: flex;
position: fixed;
bottom: 0%;
background: #fff;
box-shadow: 0 0 5px #ddd;
}

.bottom view {
width: 47%;
margin: 0 auto;
border-radius: 30px;
display: inline-block;
}

.bottom .btn2{
border: 1px solid transparent;
padding: 10px 0px;
background-image: linear-gradient(to right, #2C8E68, #5CAE77);
color: #fff;
}

.downView{
display: flex;
justify-content: center;
align-items: center;
padding: 0 20px;
border: 1px solid #5CAE77;
border-radius: 50px;
background: #fff;
margin-left: auto;
}
.downView image{
width: 10px;
height: 8px;
margin-left: 10px;
}
.hp_type{
padding: 4vw 3%;
display: flex;
border-bottom: 1px solid #eee;
}
.hp_type view{
padding: 2vw 6%;
background: #EEEEEE;
border-radius: 60px;
margin-right: 3%;
width: 30vw;
text-align: center;
}
.hp_button{
display: flex;
justify-content: space-around;
padding:4vw 0 6vw;
}
.hp_button view{
padding: 3vw 6%;
background: #EEEEEE;
border-radius: 60px;
width: 30vw;
text-align: center;
}
.van-dropdown-menu {
margin-bottom: 15px;
}
.fj-box text{
background-color: #5CAE77;
color: #ffffff;
text-align: center;
border-radius: 5px;
white-space:pre-wrap;
padding: 5rpx 8rpx;
width: 50rpx;
margin: 0px 14px;
font-size: 24rpx;
}
.fj-li{
margin-top: 20px;
display: flex;
/* flex-wrap: wrap; */
}
.fj-li .img_li{
width: 100%;
height: 18.5vw;
}

.fj-li .img_add{
overflow: hidden;
}
.van-icon-description{
font-size: 60px;
}

+ 410
- 0
pages/paymentManager/paymentManager.js Visa fil

@@ -0,0 +1,410 @@
// pages/paymentManager/paymentManager.js
import * as UTIL from '../../utils/util.js';
import * as API from '../../utils/API.js';
let EVN_CONFIG = require('../../env/env');
const DISTRIBUTE_ENVIROMENT = 'IMGURL';
let {
URL_PREFIX,
} = EVN_CONFIG[DISTRIBUTE_ENVIROMENT];
const app = getApp();
Page({

/**
* 页面的初始数据
*/
data: {
isIPX: app.globalData.isIPX,
list:[],
isLoading:false,
pageNums:1,
scrollHeight:"",
name:"",
showUpload:false,
uploadOptions:[],
fileList:[],
showPopup:false,
fileEvent:{},
itemId:"",
assetTypeOptions:[],
option1: [
{ text: '支付状态', value: '' },
{ text: '待支付', value: '1' },
{ text: '银行受理', value: '3' },
{ text: '支付失败', value: '4' },
{ text: '部分失败', value: '5' },
],
option2: [
{ text: '支出类别', value: '' },
{ text: '结算类', value: '1' },
{ text: '工程项目类', value: '2' },
{ text: '合同类', value: '4' },
{ text: '其他', value: '5' },
],
option3: [
{ text: '申请类别', value: '' },
{ text: '银行卡转账', value: '1' },
{ text: '信用卡还款', value: '2' },
],
value1: '',
value2: '',
value3: '',
},
goAdd(){
wx.navigateTo({
url: 'add/add',
})
},
back:function(){
wx.navigateBack({
delta: 1
})
},
assetTypeDict(val){
this.data.assetTypeOptions.map(res => {
if(res.dictValue == val){
return res.dictLabel
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
var that = this;
let qu = wx.createSelectorQuery()
qu.select("#top_view1").boundingClientRect()
qu.select("#top_ban").boundingClientRect()
qu.exec(res => {
that.setData({
scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
})
})

this.getList();
},

/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
//获取附件字典
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'bookkeeping_type', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
this.setData({
uploadOptions:res.data,
})
}
}
})
},
getList:function(){
let params = {
pageNum:this.data.pageNums,
pageSize:10,
name:this.data.name,
paymentState:this.data.value1,
capitalExpenditureType:this.data.value2,
transferType:this.data.value3
}
UTIL.httpRequest(API.URL_GET_TRANSFERPAYLIST,params,{
success: (res) => {
let _this = this
if(res.code == 200){
if(this.data.pageNums!=1&&this.data.list.length<res.total){
let lists = []
res.rows.map((rr,index) => {
rr.expenditureAmount = Number(rr.expenditureAmount ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
return $1 + ","; }).replace(/\.$/, "")
if(index==(res.rows.length-1)){
lists = _this.data.list.concat(res.rows)
}
})
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
let li = lists.map( res => {
r.data.map(rr => {
if(res.assetType == rr.dictValue){
res.assetType = rr.dictLabel
}
})
return res
})
_this.setData({list:li})
}else{
_this.setData({list:lists})
}
}
})
}else if(this.data.pageNums==1){
//获取资产类别
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'asset_type', {method:'GET'}, {
success: (r) => {
if(r.data.length>0){
let li = res.rows.map( ress => {
ress.originalValue = Number(ress.originalValue ).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, ($0, $1) => {
return $1 + ","; }).replace(/\.$/, "")
r.data.map(rr => {
if(ress.assetType == rr.dictValue){
ress.assetType = rr.dictLabel
}
})
return ress
})
_this.setData({list:li})
}else{
_this.setData({list:res.rows})
}
}
})
}
}else{
UTIL.showToastNoneIcon(res.msg);
}
}
})
},
paging(){
this.setData({
pageNums:this.data.pageNums+1,
})
this.getList();
},
goSearch(e){
this.setData({name:e.detail});
this.setData({pageNums:1});
this.getList();
},
toPay(e){
wx.navigateTo({
url: '/pages/paymentManager/toPay/toPay?id='+e.currentTarget.dataset.id,
})
},
scrap(e){
console.log(e.currentTarget.dataset.data.id,e.currentTarget.dataset.data.index);
if(e.currentTarget.dataset.data.assetStatus != 1){
UTIL.showToastNoneIcon('只允许修改资产状态为正常的资产!');
return false;
}else if(e.currentTarget.dataset.data.useType == 3){
UTIL.showToastNoneIcon('使用状态为出租或出借不允许操作!');
return false;
}else{
UTIL.httpRequest(API.URL_GET_UPDATERSCRAP + e.currentTarget.dataset.data.id , {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
new_list.splice(e.currentTarget.dataset.data.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('报废成功!');
}else{
UTIL.showToastNoneIcon('报废失败!:'+res.msg);
}
}
})
}
},
sell(e){
console.log(e.currentTarget.dataset.data.id,e.currentTarget.dataset.data.index);
if(e.currentTarget.dataset.data.assetStatus != 1){
UTIL.showToastNoneIcon('只允许修改资产状态为正常的资产!');
return false;
}else if(e.currentTarget.dataset.data.useType == 3){
UTIL.showToastNoneIcon('使用状态为出租或出借不允许操作!');
return false;
}else{
UTIL.httpRequest(API.URL_GET_UPDATERSALE + e.currentTarget.dataset.data.id , {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
new_list.splice(e.currentTarget.dataset.data.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('出售成功!');
}else{
UTIL.showToastNoneIcon('出售失败!:'+res.msg);
}
}
})
}
},
change(e){
var that = this ;
that.setData({value:e.detail,pageNum:1})
this.getList()
},
changeTab(e){
var that = this ;
that.setData({value1:e.detail,pageNum:1})
this.getList()
},
changeTab2(e){
var that = this ;
that.setData({value2:e.detail,pageNum:1})
this.getList()
},

upload(e){
this.setData({itemId:e.currentTarget.dataset.id});
this.asyncFun(e.currentTarget.dataset.id)
},
asyncFun(id){
this.setData({"fileList":[]})
let uploadList = this.data.uploadOptions
let _this = this
uploadList.map( (res,idx) => {
res.list=[]
console.log(res);
let oData = {
tableId: id,
tableName: "t_yinnong_transfer", //上传表
bizPath: "transfer",
fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
method:'GET'
}
UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
success: (rr) => {
if(rr.rows.length>0){
rr.rows.map((rrr,index) => {
rrr.url = URL_PREFIX + rrr.fileUrl
rrr.name = rrr.fileName
if(index==rr.rows.length-1){
res.list = rr.rows
let lis = uploadList
lis[idx] = res
_this.setData({"fileList":lis});
_this.setData({"showUpload":true})
}
})
}
else{
_this.setData({"showUpload":true})
}
}
})
})

},
closeBox(){
this.setData({"showUpload":false})
},
uploadFile(uploadFile,event) {
let _this = this
return new Promise((resolve, reject) => {
wx.uploadFile({
url: API.URL_GET_UPLOAD,
filePath: uploadFile.file.file.url,
name: 'file',
header: {
"Content-Type": "multipart/form-data",//记得设置
"chartset":"utf-8",
'Authorization':'Bearer '+getApp().globalData.userInfo.token
},
formData:uploadFile,
success: (res) => {
res.data = JSON.parse(res.data);
if(res.statusCode == 200){
let files = _this.data.fileList
let fName = res.data.fileUrl.split('/')
let fLength = fName.length
files[event.currentTarget.dataset.idx].list.push({
"fileName": fName[fLength-1],
"name":fName[fLength-1],
"fileType": "0",
"fileUrl":res.data.fileUrl ,
"id": res.data.id,
"tableId": 6,
"url":URL_PREFIX+res.data.fileUrl
})
_this.setData({"fileList":files})
wx.hideLoading()
}
},
fail: (err) => {
//上传失败:修改pedding为reject
reject(err)
}
});
})
},
afterRead(event) {
let _this = this
wx.showLoading({
title: '上传中...'
})
let fileForm={
file: event.detail,
fileType:event.currentTarget.dataset.idx,
tableName: "t_yinnong_transfer", //上传表
bizPath: "transfer",
tableId:_this.data.itemId
}
this.uploadFile(fileForm,event)
},
lookDown(e){
let file =e
// 获取指定字符串最后一次出现的位置,返回index
var index1 = file.detail.url.lastIndexOf('.');
// substr(start, length) 抽取从start下标开始的length个字符,返回新的字符串;
var style = file.detail.url.substr(index1 + 1)
//判断图片类型,不需要下载,不做处理
if(style=='png'||style=='jpg'||style=='jpeg'||style=='bmp'||style=='gif'||style=='webp'||style=='psd'||style== 'svg'||style=='tiff'){
//判断非图片类型
}else{
wx.downloadFile({
url: file.detail.url,
success(data){
wx.openDocument({
filePath: data.tempFilePath,
fileType: style,
showMenu:true,
success(res){
}
})
}
})
}
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({'pageNums':1})
this.getList();
},

/**
* 生命周期函数--监听页面隐藏
*/
onHide() {

},

/**
* 生命周期函数--监听页面卸载
*/
onUnload() {

},

/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},

/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},

/**
* 用户点击右上角分享
*/
onShareAppMessage() {

}
})

+ 16
- 0
pages/paymentManager/paymentManager.json Visa fil

@@ -0,0 +1,16 @@
{
"usingComponents": {
"van-checkbox": "@vant/weapp/checkbox/index",
"van-checkbox-group": "@vant/weapp/checkbox-group/index",
"van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index",
"van-search": "@vant/weapp/search/index",
"van-radio": "@vant/weapp/radio/index",
"van-radio-group": "@vant/weapp/radio-group/index",
"van-swipe-cell": "@vant/weapp/swipe-cell/index",
"van-action-sheet": "@vant/weapp/action-sheet/index",
"van-upload": "@vant/weapp/uploader/index",
"van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
"van-dropdown-item": "@vant/weapp/dropdown-item/index"
}
}

+ 79
- 0
pages/paymentManager/paymentManager.wxml Visa fil

@@ -0,0 +1,79 @@
<!--pages/paymentManager/paymentManager.wxml-->
<view class="ns" id="top_ban" style="height:{{isIPX?'88px':'64px'}};">
<image src="../../image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};height: 19.0909px;" mode="widthFix" bindtap="back" referrer="no-referrer|origin|unsafe-url"></image>
<text style="top:{{isIPX?'54px':'30px'}};">支出管理</text>
</view>
<van-dropdown-menu active-color="#5CAE77" bind:change="changeTab" id="top_view1" class="search_box" style="margin-top:{{isIPX?'88px':'64px'}};">
<van-dropdown-item value="{{ value1 }}" options="{{ option1 }}" bind:change="changeTab" />
<van-dropdown-item value="{{ value2 }}" options="{{ option2 }}" bind:change="changeTab2" />
<van-dropdown-item value="{{ value3 }}" options="{{ option3 }}" bind:change="changeTab2" />
</van-dropdown-menu>
<scroll-view scroll-y refresher-threshold="0" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<van-swipe-cell right-width="{{ 50 }}" class="workflow" wx:for="{{list}}" wx:key="index" wx:for-item="item" >
<view class="li" >
<view style="width:70%;flex:7;">
<view class="tit_box">
<image src="/image/icon/paymentManager_icon.png" style="width: 15px;height: 15px;margin-right: 10px;" referrer="no-referrer|origin|unsafe-url"></image>
<text class="tit">{{item.payer}}</text>
</view>
<view class="detail_box">
<view style="margin-left:5%;color:grey;font-size: 12px;justify-content: space-between;display: contents;">
<text>{{item.payerAccount}}</text>
<text style="color:#62AD66;background-color: rgb(98,173,102,0.2);padding:2px 4px;text-align: right;">{{item.transferType==1?"银行还款":"信用卡还款"}}</text>
</view>
</view>
<view class="detail_box">
<view style="width: 50%;">
<image src="/image/icon/clock_icon.png" style="width: 15px;height: 15px;border-radius:5px;margin-right: 5px;"></image>
<text>{{item.applyDate}}</text>
</view>
<view style="width: 50%;">
<image src="/image/icon/clock_red_icon.png" style="width: 15px;height: 15px;border-radius:5px;margin-right: 5px;"></image>
<text>{{item.applyDate}}</text>
</view>
</view>
</view>
<view style="width:30%;flex:3;">
<view style="text-align: right;">
<view style="color:red;line-height: 50px;font-size: 18px;">
<text style="font-size: 10px;display: inline;">¥</text>{{item.expenditureAmount}}
</view>
</view>
<view style="text-align: right;" bindtap="toPay" data-id="{{item.id}}">
<button wx-if="{{item.paymentState==1}}" type="primary" size="mini" style="border-radius: 15px;" >待支付</button>
<button wx-if="{{item.paymentState==3}}" type="primary" size="mini" style="border-radius: 15px;background-color: #B3DB62;">银行受理</button>
<button wx-if="{{item.paymentState==4}}" type="warn" size="mini" style="border-radius: 15px;">支付失败</button>
<button wx-if="{{item.paymentState==5}}" type="primary" size="mini" style="border-radius: 15px;background-color: #FC9A55;">部分失败</button>
</view>
</view>
</view>
<view slot="right" class="deleteBox">
<view style="flex: 1;height: 100%;display: flex;align-items: center;flex-direction: column;justify-content: center;background-color: rgb(98,173,102,0.2);" data-id="{{item.id}}" data-index="{{index}}" bindtap="upload">
<view>
<image src="../../image/icon/upload_icon.png" style="width: 25px;height: 25px;margin: 0 auto;display: block;" ></image>
</view>
<view>
<text style="color: #62AD66;">附件</text>
</view>
</view>
</view>
</van-swipe-cell>
</scroll-view>

<van-action-sheet show="{{showUpload}}" title="附件" bind:close="closeBox">
<scroll-view scroll-y="true" style="height: 600rpx;" scroll-top="0">
<view class="fj-box">
<view class="fj-li" wx:for="{{fileList}}" wx:key="index" wx:for-item="item" >
<view>
<text>{{item.dictLabel}}</text>
</view>
<view class="img_box">
<view class="img_li">
<van-upload file-list="{{ item.list }}" deletable="{{false}}" show-upload="{{false}}" bind:click-preview="lookDown">
</van-upload>
</view>
</view>
</view>
</view>
</scroll-view>
</van-action-sheet>

+ 285
- 0
pages/paymentManager/paymentManager.wxss Visa fil

@@ -0,0 +1,285 @@
/* pages/paymentManager/paymentManager.wxss */
.van-search__content {
border: 1px solid #5CAE77!important;
background: #fff!important;
}
van-search {
flex: 0.8;
}
.search_box{
display: flex;
}
.add_btn{
flex: 0.2;
padding: var(--search-padding,10px 12px);
padding-left: 0;
}
.add_btn text{
background-color: #62AD66;
display: block;
height: 100%;
text-align: center;
line-height: 36px;
color: #fff;
border-radius: 36px;
box-shadow: 0px 5px 5px #ddd;
}
text{display: block;}
.work_plan{
padding: 40rpx 32.5rpx 30rpx;
display: flex;
}

.work_plan .menu_item{
background-color: #fff;
box-shadow: 2px 5px 5px #ddd;
border-radius: 60rpx;
text-align: center;
position: relative;
margin-right: 20px;
padding: 8px 10px;
}
.work_plan .menu_item.active{
background-color: #2C8E68;
color: #fff;
}
.work_plan .menu_item .remind{
height: 30rpx;
background: #e90101;
color: #fff;
font-size: 26rpx;
position: absolute;
line-height: 30rpx;
padding:0 10rpx;
border-radius: 25px;
top: -10rpx;
right: -10rpx;
}

.work_plan .more{
flex: 1;
text-align: center;
line-height: 60rpx;
font-size: 36rpx;
color: #31936c;
}
.deleteBox{
width: 50px;
text-align: center;
height: 100%;
background: #F6F6F6;
align-items: center;
display: flex;
}
.moreBox{
width: 90px;
text-align: center;
height: 100%;
background: #F6F6F6;
align-items: center;
display: flex;
}
.workflow .workflow_list{
height: 150rpx;
background-color: #fff;
border-radius: 24rpx;
box-shadow:0rpx 0rpx 10rpx rgba(0,0,0,.1);
margin-bottom: 20rpx;
padding:15rpx 25rpx 10rpx 35rpx;
}
.workflow .workflow_list .process_intro{
display: flex;
height: 62rpx;
align-items: center;
}

.workflow .process_intro .name{
width: 390rpx;
font-size: 34rpx;
margin-right: 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.workflow .process_intro .name .name_tit{
width: 290rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.van-swipe-cell {
width: 94%;
background: #fff;
border-radius: 10px;
box-shadow: 2px 5px 5px #ddd;
margin: 0 auto;
margin-bottom: 15px;
}
.li{
width: 100%;
padding: 14px;
display: flex;
}
.tit_box{
display: flex;
}
.detail_box{
margin-top: 10px;
display: flex;
justify-content: space-between;
}
.li view text{
/* margin-top: 15px; */
}
.li .detail_box view{
display: flex;
align-items: center;
}
.li .detail_box view text{
color: #666666;
font-size: 12px;
}

.li view text:nth-child(1){
margin-top: 0px;
}
.li .fksr{
display: flex;
align-items: center;
margin-top: 15px;
color: #2C8E68;
font-size: 16px;
}
.li .wtj{
display: flex;
align-items: center;
justify-content: center;
padding: 3px 8px;
border-radius: 5px;
font-size: 14px;
}
.no{
background-color:#fbe3e3;
color: #e90000;
}
.white{
background-color:#feeadc;
color: #fc9a55;
}
.yes{
background-color:#ddeee3;
color: #5cae77;
}
.other{
background-color:#f0f1f6;
color: #878787;
}
.li .tit{
font-size: 16px;
color: #444444;
line-height: 14px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
word-break: break-all;
overflow: hidden;
}
.li .fj_name{
font-size: 14px;
color: #B3DB62;
line-height: 25px;
}
.li .time{
font-size: 14px;
color: #9B9CAA;
}
.li .money{
font-size: 18px;
color: #5CAE77;
}
.van-checkbox__label {
display: flex;
justify-content: space-between;
width: 100%;
}

.van-checkbox__icon-wrap {
border-radius: 5px;
}
.van-checkbox__icon {
border-radius: 5px;
border: 2px solid #2C8E68!important;
background-color: rgba(44, 142, 104, 0.2);
}
.bottom{
width: 100%;
margin: 0 auto;
text-align: center;
padding: 15px 0;
display: flex;
position: fixed;
bottom: 0%;
background: #fff;
box-shadow: 0 0 5px #ddd;
}

.bottom view {
width: 47%;
margin: 0 auto;
border-radius: 30px;
display: inline-block;
}

.bottom .btn2{
border: 1px solid transparent;
padding: 10px 0px;
background-image: linear-gradient(to right, #2C8E68, #5CAE77);
color: #fff;
}

.downView{
display: flex;
justify-content: center;
align-items: center;
padding: 0 20px;
border: 1px solid #5CAE77;
border-radius: 50px;
background: #fff;
margin-left: auto;
}
.downView image{
width: 10px;
height: 8px;
margin-left: 10px;
}
.fj-box text{
background-color: #5CAE77;
color: #ffffff;
text-align: center;
border-radius: 5px;
white-space:pre-wrap;
padding: 5rpx 8rpx;
width: 50rpx;
margin: 0px 14px;
font-size: 24rpx;
}
.fj-li{
margin-top: 20px;
display: flex;
/* flex-wrap: wrap; */
}
.fj-li .img_li{
width: 100%;
height: 18.5vw;
}

.fj-li .img_add{
overflow: hidden;
}
.van-icon-description{
font-size: 60px;
}
.van-dropdown-menu {
width:100%;
margin-bottom: 15px;
}

+ 26
- 31
pages/project/add/add.wxml Visa fil

@@ -1,42 +1,37 @@
<!--pages/payee/add/add.wxml-->
<view class="ns" style="height:{{isIPX?'88px':'64px'}};">
<image src="/image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};height: 19.0909px;" mode="widthFix" bindtap="back"></image>
<text style="top:{{isIPX?'54px':'30px'}};">{{form.id?"":"新增"}}工程项目</text>
<image src="/image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};" mode="widthFix" bindtap="back"></image>
<text style="top:{{isIPX?'54px':'30px'}};">新增工程项目</text>
</view>
<view class="main-box table-box table-boxs" style="margin-top:{{isIPX?'100px':'75px'}};">
<view class="main-box table-box" style="margin-top:{{isIPX?'100px':'75px'}};">

<van-field label="项目名称" value="{{ form.projectName }}" placeholder="项目名称" border="{{ false }}" bind:change="onChange" input-align="right" required data-value="form.projectName"/>
<van-field label="合同承建方" value="{{ form.projectContractor }}" placeholder="合同承建方" border="{{ false }}" bind:change="onChange" input-align="right" required data-value="form.projectContractor"/>
<view class="section" style="margin-top: -28rpx;">
<view class="section__title"><text style="color:red;margin-right: 8rpx;">*</text>开工日期</view>
<picker mode="date" value="{{form.startTime}}" bindchange="onConfirmStartTime">
<view class="picker">
{{form.startTime?form.startTime:'开工日期'}}
</view>
</picker>
</view>
<view class="section" style="margin-top: -28rpx;">
<view class="section__title"><text style="color:red;margin-right: 8rpx;">*</text>竣工日期</view>
<picker mode="date" value="{{form.endTime}}" bindchange="onConfirmEndTime">
<view class="picker">
{{form.endTime?form.endTime:'竣工日期'}}
</view>
</picker>
</view>
<van-field label="合共价款(元)" value="{{ form.projectAmount }}" type="digit" placeholder="合共价款(元)" border="{{ false }}" bind:change="onChange" input-align="right" required data-value="form.projectAmount"/>

<van-field readonly label="开工日期" value="{{ form.startTime }}" placeholder="开工日期" border="{{ false }}" bind:change="onChange" input-align="right" required is-link arrow-direction ="down" bindtap="openBox" data-name="showStartTime"/>
<van-calendar show="{{ showStartTime }}" bind:close="closeBox" data-name="showStartTime" bind:confirm="onConfirmTime" data-value="form.startTime" show-confirm="{{ false }}" />

<view class="section" style="margin-top: -28rpx;">
<view class="section__title"><text style="color:red;margin-right: 8rpx;">*</text>工程状态</view>
<picker bindchange="onConfirmynProjcetStatus" value="{{ynProjcetStatusindex}}" range="{{ynProjcetStatusOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{ynProjcetStatusOptions[ynProjcetStatusindex].dictLabel?ynProjcetStatusOptions[ynProjcetStatusindex].dictLabel:"选择所属银行"}}
<van-icon name="arrow-down" />
</view>
</picker>
</view>
<van-field label="备注" value="{{ form.remark }}" placeholder="备注" border="{{ false }}" bind:change="onChange" input-align="right" data-value="form.remark"/>
<van-field label="竣工日期" value="{{ form.endTime }}" placeholder="竣工日期" border="{{ false }}" bind:change="onChange" input-align="right" required is-link arrow-direction ="down" bindtap="openBox" data-name="showEndTime" />
<van-calendar show="{{ showEndTime }}" bind:close="closeBox" data-name="showEndTime" bind:confirm="onConfirmTime" data-value="form.endTime" show-confirm="{{ false }}" />

<van-field label="合共价款(元)" value="{{ form.projectAmount }}" placeholder="合共价款(元)" border="{{ false }}" bind:change="onChange" input-align="right" required data-value="form.projectAmount"/>


<van-popup show="{{showYnProjcetStatus}}" round position="bottom" bind:close="closeBox" data-name="showYnProjcetStatus">
<van-picker
columns="{{ynProjcetStatusOptions}}"
show-toolbar
value-key="dictLabel"
bind:cancel="closeBox"
bind:confirm="onConfirmYn"
data-name="showYnProjcetStatus"
data-value="form.ynProjcetStatus"
/>
</van-popup>
<van-field label="工程状态" value="{{ form.ynProjcetStatusText }}" placeholder="工程状态" border="{{ false }}" bind:change="onChange" input-align="right" required data-value="form.ynProjcetStatus" is-link arrow-direction ="down" bindtap="openBox" data-name="showYnProjcetStatus"/>

<van-field label="备注" value="{{ form.remark }}" placeholder="备注" border="{{ false }}" bind:change="onChange" input-align="right" data-value="form.remark"/>
</view>
<view class="bottom">
<view class="btn2" bindtap="goSubmit">保存</view>
<view class="btn2" bindtap="goSubmit">确认</view>
</view>

+ 2
- 0
pages/project/add/add.wxss Visa fil

@@ -1,4 +1,6 @@
/* pages/payee/add/add.wxss */

@import "../../../style/iconfont.wxss";
.main-box{
background: #ffffff;
padding: 20px;


+ 36
- 5
style/iconfont.wxss
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 100
- 1
utils/API.js Visa fil

@@ -266,6 +266,12 @@ const URL_GET_SUBJECTLIST = `${URL_PREFIX}/finance/subject/list?is_last=Y`;
//固定资产列表
const URL_GET_PERMANENTLIST = `${URL_PREFIX}/asset/permanent/list/`;

//可关联固定资产列表
const URL_GET_PERMANENTLISTS = `${URL_PREFIX}/asset/permanent/listContractPermanentList/`;

//可关联资源性资产列表
const URL_GET_RESOURCELIST = `${URL_PREFIX}/asset/resource/listContractResourceList/`;

//固定资产删除
const URL_GET_PERMANENTDELETE = `${URL_PREFIX}/asset/permanent/remove/`;

@@ -312,6 +318,74 @@ const URL_GET_UPLOADFILE = `${URL_PREFIX}/yinnong/transfer/importData`;
//下载收款人模板
const URL_GET_DOWNFILE = `${URL_PREFIX}/yinnong/transfer/importTemplate`;

//合同终止
const URL_GET_TERMINATEINFO = `${URL_PREFIX}/contraction/info/terminateInfo/`;

//合同撤销
const URL_GET_CANCELINFO = `${URL_PREFIX}/contraction/info/cancelnfo/`;

//可关联合同列表
const URL_GET_ASSETLISTALL = `${URL_PREFIX}/contraction/asset/list/`;

//固定资产变更(数量)
const URL_POST_UPDATEQUANTITY = `${URL_PREFIX}/asset/permanent/updateQuantity`;

//固定资产变更(原值)
const URL_POST_UPDATEORIGINALVALUE = `${URL_PREFIX}/asset/permanent/updateOriginalValuePermanent`;

//固定资产变更(折旧方式)
const URL_POST_UPDATEDEPRECIATIONMETHOD = `${URL_PREFIX}/asset/permanent/updateDepreciationMethod`;

//固定资产变更(预计使用年数)
const URL_POST_UPDATEEXPECTEDYEARS = `${URL_PREFIX}/asset/permanent/updateExpectedYears`;

//固定资产变更(已折旧年数)
const URL_POST_UPDATEDEPRECIATIONYEARS = `${URL_PREFIX}/asset/permanent/updateDepreciationYears`;

//固定资产变更(累计折旧)
const URL_POST_UPDATEDEPRECIATIONVALUE = `${URL_PREFIX}/asset/permanent/updateDepreciationValue`;

//固定资产变更(残值率)
const URL_POST_UPDATERESIDUALSRATE = `${URL_PREFIX}/asset/permanent/updateResidualsRate`;

//出售固定资产
const URL_GET_UPDATERSALE = `${URL_PREFIX}/asset/permanent/updateSale/`;

//作废固定资产
const URL_GET_UPDATESCRAP = `${URL_PREFIX}/asset/permanent/updateScrap/`;

//查询支付管理列表
const URL_GET_TRANSFERPAYLIST = `${URL_PREFIX}/yinnong/transfer/payList/`;

//查询转账详情
const URL_GET_TRANSFERINFO= `${URL_PREFIX}/yinnong/transfer/get/`;

//查询转账列表
const URL_GET_TRANSFERINFOS= `${URL_PREFIX}/yinnong/transferDetail/getDetails/`;

//支付验证码
const URL_GET_SENDMSG= `${URL_PREFIX}/yinnong/transfer/sendSms/`;

//支付
const URL_GET_PAY= `${URL_PREFIX}/yinnong/transfer/pay/`;

//重大事项列表
const URL_GET_MAJOREVENTLIST= `${URL_PREFIX}/yinnong/majorevent/list/`;

//重大事项查询
const URL_GET_MAJOREVENTGET= `${URL_PREFIX}/yinnong/majorevent/get/`;

//重大事项新增
const URL_POST_MAJOREVENTADD= `${URL_PREFIX}/yinnong/majorevent/add/`;

//重大事项修改
const URL_POST_MAJOREVENTUPDATE= `${URL_PREFIX}/yinnong/majorevent/edit/`;

//重大事项删除
const URL_GET_MAJOREVENTDELETE= `${URL_PREFIX}/yinnong/majorevent/remove/`;

//重大事项提交
const URL_GET_MAJOREVENTSUBMIT= `${URL_PREFIX}/yinnong/majorevent/customSubmit/`;


/****************接口地址end****************/
@@ -431,5 +505,30 @@ export {
URL_GET_PAYEEGET,
URL_GET_PAYEEREMOVE,
URL_GET_UPLOADFILE,
URL_GET_DOWNFILE
URL_GET_DOWNFILE,
URL_GET_TERMINATEINFO,
URL_GET_CANCELINFO,
URL_GET_ASSETLISTALL,
URL_GET_RESOURCELIST,
URL_GET_PERMANENTLISTS,
URL_POST_UPDATEQUANTITY,
URL_POST_UPDATEORIGINALVALUE,
URL_POST_UPDATEDEPRECIATIONMETHOD,
URL_POST_UPDATEEXPECTEDYEARS,
URL_POST_UPDATEDEPRECIATIONYEARS,
URL_POST_UPDATEDEPRECIATIONVALUE,
URL_POST_UPDATERESIDUALSRATE,
URL_GET_UPDATERSALE,
URL_GET_UPDATESCRAP,
URL_GET_TRANSFERPAYLIST,
URL_GET_TRANSFERINFO,
URL_GET_TRANSFERINFOS,
URL_GET_SENDMSG,
URL_GET_PAY,
URL_GET_MAJOREVENTLIST,
URL_GET_MAJOREVENTGET,
URL_POST_MAJOREVENTADD,
URL_POST_MAJOREVENTUPDATE,
URL_GET_MAJOREVENTDELETE,
URL_GET_MAJOREVENTSUBMIT
}

Laddar…
Avbryt
Spara