Browse Source

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

 Conflicts:
	utils/API.js
master
pangdongxu 3 years ago
parent
commit
00d971b73b
23 changed files with 2263 additions and 205 deletions
  1. +4
    -1
      app.json
  2. BIN
      image/icon/calendar_icon.png
  3. BIN
      image/icon/depreciation_method_icon.png
  4. BIN
      image/icon/fixedAssets_icon.png
  5. BIN
      image/icon/fixed_contract_icon.png
  6. BIN
      image/icon/fixed_data_icon.png
  7. +191
    -186
      pages/contract/contract.js
  8. +2
    -2
      pages/contract/contract.wxml
  9. +138
    -0
      pages/finance/finance.js
  10. +5
    -0
      pages/finance/finance.json
  11. +61
    -0
      pages/finance/finance.wxml
  12. +201
    -0
      pages/finance/finance.wxss
  13. +539
    -0
      pages/fixedAssets/add/add.js
  14. +9
    -0
      pages/fixedAssets/add/add.json
  15. +265
    -0
      pages/fixedAssets/add/add.wxml
  16. +69
    -0
      pages/fixedAssets/add/add.wxss
  17. +361
    -0
      pages/fixedAssets/fixedAssets.js
  18. +14
    -0
      pages/fixedAssets/fixedAssets.json
  19. +79
    -0
      pages/fixedAssets/fixedAssets.wxml
  20. +272
    -0
      pages/fixedAssets/fixedAssets.wxss
  21. +8
    -16
      pages/index/index.wxml
  22. +25
    -0
      utils/API.js
  23. +20
    -0
      utils/util.js

+ 4
- 1
app.json View File

@@ -30,7 +30,10 @@
"pages/project/project",
"pages/project/add/add",
"pages/contract/contract",
"pages/contract/add/add"
"pages/contract/add/add",
"pages/fixedAssets/fixedAssets",
"pages/fixedAssets/add/add",
"pages/finance/finance"
],
"window": {
"backgroundTextStyle": "light",


BIN
image/icon/calendar_icon.png View File

Before After
Width: 32  |  Height: 32  |  Size: 605 B

BIN
image/icon/depreciation_method_icon.png View File

Before After
Width: 33  |  Height: 35  |  Size: 729 B

BIN
image/icon/fixedAssets_icon.png View File

Before After
Width: 33  |  Height: 33  |  Size: 707 B

BIN
image/icon/fixed_contract_icon.png View File

Before After
Width: 38  |  Height: 33  |  Size: 1.1 KiB

BIN
image/icon/fixed_data_icon.png View File

Before After
Width: 34  |  Height: 33  |  Size: 791 B

+ 191
- 186
pages/contract/contract.js View File

@@ -4,7 +4,7 @@ import * as API from '../../utils/API.js';
let EVN_CONFIG = require('../../env/env');
const DISTRIBUTE_ENVIROMENT = 'IMGURL';
let {
URL_PREFIX,
URL_PREFIX,
} = EVN_CONFIG[DISTRIBUTE_ENVIROMENT];
const app = getApp();
Page({
@@ -41,8 +41,14 @@ Page({
*/
onLoad(options) {
var that = this;
that.setData({
scrollHeight:wx.getSystemInfoSync().windowHeight

let qu = wx.createSelectorQuery()
qu.select("#top_view").boundingClientRect()
qu.select("#top_ban").boundingClientRect()
qu.exec(res => {
that.setData({
scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
})
})
},

@@ -62,206 +68,205 @@ Page({
}
})
},
getList:function(){
let params = {
pageNum:this.data.pageNums,
pageSize:10,
name:this.data.name
}
UTIL.httpRequest(API.URL_GET_CONTRACTLIST,params,{
success: (res) => {
console.log(res);
getList:function(){
let params = {
pageNum:this.data.pageNums,
pageSize:10,
name:this.data.name
}
UTIL.httpRequest(API.URL_GET_CONTRACTLIST,params,{
success: (res) => {
console.log(res);
if(res.code == 200){
if(this.data.pageNums!=1&&this.data.list.length<=res.total){
if(this.data.pageNums!=1&&this.data.list.length<res.total){
let lists = this.data.list.concat(res.rows)
this.setData({list:lists})
}else{
}else if(this.data.pageNums==1){
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.getList();
},
goUpdate(e){
wx.navigateTo({
url: '/pages/contract/add/add?id='+e.currentTarget.dataset.id,
})
},
delete(e){
UTIL.httpRequest(API.URL_GET_CONTRACTDELETE + e.currentTarget.dataset.id, {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
console.log(e.currentTarget.dataset.index);
new_list.splice(e.currentTarget.dataset.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('删除成功!');
}else{
UTIL.showToastNoneIcon('删除失败!');
}
})
},
paging(){
this.setData({
pageNums:this.data.pageNums+1,
})
this.getList();
},
goSearch(e){
this.setData({name:e.detail})
this.getList();
},
goUpdate(e){
wx.navigateTo({
url: '/pages/contract/add/add?id='+e.currentTarget.dataset.id,
})
},
delete(e){
UTIL.httpRequest(API.URL_GET_CONTRACTDELETE + e.currentTarget.dataset.id, {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
console.log(e.currentTarget.dataset.index);
new_list.splice(e.currentTarget.dataset.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('删除成功!');
}else{
UTIL.showToastNoneIcon('删除失败!');
}
}
})
},
upload(e){
this.setData({itemId:e.currentTarget.dataset.id});
this.asyncFun(e.currentTarget.dataset.id)
this.setData({"fileList":[]})
},
asyncFun(id){
let uploadList = this.data.uploadOptions
let newList = []
let _this = this
uploadList.map( res => {
let oData = {
tableId: id,
tableName: "t_contraction_info", //上传表
bizPath: "contraction",
fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
method:'GET'
}
UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
success: (rr) => {
console.log(rr.rows);
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})
}
})

},
fail:(rr) =>{
console.log(rr);
},
complete:(rr) => {
console.log(rr);
}
})
},
upload(e){
this.setData({itemId:e.currentTarget.dataset.id});
this.asyncFun(e.currentTarget.dataset.id)
this.setData({"fileList":[]})
},
asyncFun(id){
let uploadList = this.data.uploadOptions
let newList = []
let _this = this
uploadList.map( res => {
let oData = {
tableId: id,
tableName: "t_contraction_info", //上传表
bizPath: "contraction",
fileType: res.dictValue, //附件类型 1原始发票 2会议纪要 3会议照片 4 参会人员签字
method:'GET'
})

},
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
console.log(event);
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,
})
}
UTIL.httpRequest(API.URL_GET_ATTACHMENTLIST, oData, {
success: (rr) => {
console.log(rr.rows);
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})
}
})
},
fail:(rr) =>{
console.log(rr);
},
complete:(rr) => {
console.log(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
console.log(event);
UTIL.httpRequest(API.URL_GET_GETFILEREMOVE+event.detail.file.id , {method:'GET'}, {
}
})
},
uploadFile(uploadFile,event) {
let _this = this
return new Promise((resolve, reject) => {
wx.uploadFile({
url: API.URL_GET_UPLOAD,
filePath: uploadFile.file.file[0].url,
name: 'file',
header: {
"Content-Type": "multipart/form-data",//记得设置
"chartset":"utf-8",
'Authorization':'Bearer '+getApp().globalData.userInfo.token
},
formData:uploadFile,
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,
})
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)
}
})
},
uploadFile(uploadFile,event) {
let _this = this
return new Promise((resolve, reject) => {
wx.uploadFile({
url: API.URL_GET_UPLOAD,
filePath: uploadFile.file.file[0].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_contraction_info", //上传表
bizPath: "contraction", //上传目录
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){
}
})
});
})
},
afterRead(event) {
let _this = this
wx.showLoading({
title: '上传中...'
})
let fileForm={
file: event.detail,
fileType:event.currentTarget.dataset.idx,
tableName: "t_contraction_info", //上传表
bizPath: "contraction", //上传目录
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){
}
})
}
},
})
}
},
/**
* 生命周期函数--监听页面显示
*/


+ 2
- 2
pages/contract/contract.wxml View File

@@ -1,10 +1,10 @@
<!--pages/bank/bank.wxml-->
<view class="ns" style="height:{{isIPX?'88px':'64px'}};">
<view class="ns" id="top_ban" style="height:{{isIPX?'88px':'64px'}};">
<image src="../../image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};" mode="widthFix" bindtap="back" referrer="no-referrer|origin|unsafe-url"></image>
<text style="top:{{isIPX?'54px':'30px'}};">合同信息</text>
</view>

<view class="search_box" style="margin-top:{{isIPX?'100px':'75px'}};">
<view class="search_box" id="top_view" style="margin-top:{{isIPX?'100px':'75px'}};">
<van-search
value="{{ name }}"
shape="round"


+ 138
- 0
pages/finance/finance.js View File

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

/**
* 页面的初始数据
*/
data: {
isIPX: app.globalData.isIPX,
pageNums:1,
scrollHeight:"",
financeList:[],
index:0,
array:["收支明细公开"],
userInfoObj:[],
date: UTIL.formatDates(new Date),
data:{}
},
onConfirmReviewTime(e){
let data = e.detail.value;
this.setData({
'date':data,
'pageNums':1});
this.getList();
},
paging(){
this.setData({
pageNums:this.data.pageNums+1,
})
this.getList();
},
getList:function(){
let params = {
pageNum:this.data.pageNums,
pageSize:10,
startNY:this.data.date,
all:false
}
UTIL.httpRequest(API.URL_GET_FINANCIALLIST,params,{
success: (res) => {
console.log(res);

if(res.code == 200){
this.setData({'data':res.summary})
if(this.data.pageNums!=1&&this.data.financeList.length<res.total){
let lists = this.data.financeList.concat(res.rows)
this.setData({financeList:lists})
}else if(this.data.pageNums==1){
this.setData({financeList:res.rows})
}
}else{
UTIL.showToastNoneIcon(res.msg);
}
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this;
let qu = wx.createSelectorQuery()
qu.select("#top_view1").boundingClientRect()
qu.select("#top_view2").boundingClientRect()
qu.exec(res => {
console.log(res);
that.setData({
scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top-res[1].height-res[1].left*2
})
})
this.getList()
},

bindPickerChange:function(e){
this.setData({index:e.detail.value});
},
switchTab:function(e){
this.setData({
active:e.currentTarget.dataset.gid
})
},
back:function(){
wx.navigateBack({
delta: 1
})
},

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

},

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

},

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

},

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

},

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

},

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

},

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

}
})

+ 5
- 0
pages/finance/finance.json View File

@@ -0,0 +1,5 @@
{
"usingComponents": {
"van-empty": "@vant/weapp/empty/index"
}
}

+ 61
- 0
pages/finance/finance.wxml View File

@@ -0,0 +1,61 @@
<!--pages/handle/liist.wxml-->
<view class="ns" id="top_ban" style="height:{{isIPX?'88px':'64px'}};">
<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="work_plan" id="top_view1" style="margin-top:{{isIPX?'85px':'75px'}};">
<view style="border:1px solid #ddd;background: #fff;border-radius: 30rpx;line-height: 60rpx;padding: 0 25rpx;">
<picker mode="date" value="{{date}}" start="{{ minDate }}" end="{{ maxDate }}" fields="month" bindchange="onConfirmReviewTime">
<view class="picker">
<image src="../../image/icon/calendar_icon.png" style="height:25rpx;width:25rpx;margin-right: 10rpx;"></image>
{{date}}
</view>
</picker>
</view>
<view style="border:1px solid #ddd;background: #fff;border-radius: 30rpx;line-height: 60rpx;padding: 0 25rpx;">
<picker bindchange="bindPickerChange" value="{{index}}" range="{{array}}" >
<view class="picker">
{{array[index]}}
<image src="../../image/icon/triangle.png" style="height:25rpx;width:25rpx;margin-right: 10rpx;"></image>
</view>
</picker>
</view>
</view>
<view class="banner" id="top_view2">
<view class="banner_tabs">
<view>上月结余</view>
<view>¥{{data.syjc}}</view>
</view>
<view class="banner_tabs">
<view>支出</view>
<view>¥{{data.dai}}</view>
</view>
<view class="banner_tabs">
<view>收入</view>
<view>¥{{data.jie}}</view>
</view>
<view class="banner_tabs">
<view>本月结存</view>
<view>¥{{data.byjc}}</view>
</view>
</view>
<scroll-view scroll-y refresher-threshold="0" style="height:{{scrollHeight}}px" bindscrolltolower="paging" lower-threshold="100">
<view class="workflow" wx:for-item="item" wx:for="{{financeList}}" wx:key="index" data-type="up" >
<!--1-->
<view class="workflow_list">
<view class="process_intro">
<view class="name">{{item.voucherSummary}}</view>
<view class="amount" wx:if="{{item.jieAmount}}">¥+{{item.jieAmount?item.jieAmount:""}}</view>
<view class="amounts" wx:if="{{item.daiAmount}}">¥-{{item.daiAmount?item.daiAmount:""}}</view>
</view>
<view class="process_pay">
<view class="describe">
<text class="textLimit">{{item.voucherWord?item.voucherWord:""}}-{{item.num?item.num:""}}</text>
</view>
<view class="time">{{item.bookDate?item.bookDate:""}}</view>
</view>
</view>
</view>
<van-empty wx:if="{{todoNum == 0}}" description="暂无待办数据" />
</scroll-view>


+ 201
- 0
pages/finance/finance.wxss View File

@@ -0,0 +1,201 @@
/* pages/handle/liist.wxss */
.work_plan{
padding: 40rpx 32.5rpx 30rpx;
display: flex;
}

.work_plan .menu_item{
height: 60rpx;
width: 140rpx;
background-color: #fff;
box-shadow: 0rpx 0rpx 9rpx rgba(0,0,0,.2);
border-radius: 60rpx;
line-height: 60rpx;
text-align: center;
font-size: 32rpx;
position: relative;
margin-right: 16rpx;

}
.work_plan .menu_item.active{
background-color: #5bae78;
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: 50%;
top: -10rpx;
right: -10rpx;
}

.work_plan .more{
flex: 1;
text-align: center;
line-height: 60rpx;
font-size: 36rpx;
color: #31936c;
}
.workflow{
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;
}
.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;
}
.agree{
background-color: rgba(92, 174, 119, 0.1);
color:#5CAE77 ;
text-align: center;
float: right;
padding: 2px 5px;
border-radius: 5px;
font-size: 12px;
}
.in{
background-color: rgba(245, 163, 39, 0.1);
color:#F5A327 ;
text-align: center;
float: right;
padding: 2px 5px;
border-radius: 5px;
font-size: 12px;
}
.disagree{
background-color: rgba(233, 0, 0, 0.1);
color:#E90000 ;
text-align: center;
float: right;
padding: 2px 5px;
border-radius: 5px;
font-size: 12px;
}
.workflow .process_intro .state{
width: 93rpx;
height: 42rpx;
background-color: #fbe3e3;
color: #f31e1f;
border-radius: 12rpx;
text-align: center;
line-height: 42rpx;
}

.workflow .time{
flex: 1;
text-align: right;
font-size: 32rpx;
color: #9ea1aa;
}


.workflow .workflow_list .process_pay{
display: flex;
height: 52rpx;
align-items: center;
}


.workflow .workflow_list .process_pay .describe{
font-size: 30rpx;
width: 330rpx;
color: #3c9370;
display: flex;
align-items: center;
}
.workflow .workflow_list .process_pay .describe .amount_icon{
width: 32rpx;
height: 32rpx;
margin-right: 12rpx;
}

.workflow .workflow_list .amount{
font-size: 38rpx;
flex: 1;
text-align: right;
color: #f31e1f;
}
.workflow .workflow_list .amounts{
font-size: 38rpx;
flex: 1;
text-align: right;
color:#4caf50;
}
.workflow .workflow_list .process_pay .amount .unit{
font-size: 26rpx;
}
.work_plan{
padding: 40rpx 32.5rpx 30rpx;
display: flex;
justify-content:space-between;
background-color: #FFF;
}
.work_plan .menu_item{
height: 60rpx;
width: 180rpx;
background-color: #fff;
box-shadow: 0rpx 0rpx 9rpx rgba(0,0,0,.2);
border-radius: 60rpx;
line-height: 60rpx;
text-align: center;
font-size: 32rpx;
position: relative;
margin-right: 16rpx;
padding:0 10rpx;
display: inline-block;
}
.work_plan .menu_item.active{
background-color: #5bae78;
color: #fff;
}
.remind{
height: 30rpx;
background: #e90101;
color: #fff;
font-size: 26rpx;
position: absolute;
line-height: 30rpx;
padding:0 10rpx;
border-radius: 50%;
top: -10rpx;
right: -10rpx;
}
.textLimit{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.banner {
display: flex;background:#4caf50;color:#fff;text-align: center;margin:3%;border-radius: 20rpx;line-height: 50rpx;
}
.banner_tabs{
flex:1;padding:20rpx 0;
}

+ 539
- 0
pages/fixedAssets/add/add.js View File

@@ -0,0 +1,539 @@
// 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:{
reviewTime:'2022-01-01',
buildingTime:'2022-01-01',
startTime:'2022-01-01',
endTime:'2022-01-01',
biddingDate:'2022-01-01',
fixedValue:'153:固定资产清理',
fixedSubject:'152:累计折旧',
depreciationSubject:'541005:管理费用-折旧及修理费',
originalValue:0.00,
quantity:0.00,
netValue:0.00,
residualsRate:1,
netSalvage:0.00,
expectedYears:1,
depreciationYears:0,
depreciationValue:0,
},
assetTypeindex:'0',
operationTypendex:'0',
addTypeindex:'0',
useTypeindex:'0',
depreciationTypeindex:'0',
assetStatusindex:'0',
isFormAssetindex:'0',
isMinindex:'0',
unitindex:'0',
showBiddingDate:false,
minDate: new Date(2008, 5, 1).getTime(),
maxDate: new Date(2040, 0, 31).getTime(),
// 资产类别字典
assetTypeOptions: [],
// 经营属性字典
operationTypeOptions: [],
// 增加方式字典
addTypeOptions: [],
// 使用情况字典
useTypeOptions: [],
// 折旧方式字典
depreciationTypeOptions: [],
// 资产状态字典
assetStatusOptions: [],
// 系统是否字典
sysYesNoOptions: [],
//单位字段
unitOptions:[],
},
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,
})
console.log(this.data.form);
},
closeBox(even){
this.setData({
[even.currentTarget.dataset.name]:false
})
},
onConfirmBuildTime(e){
let data = this.getNewDate(new Date(e.detail.value));
this.setData({'form.buildTime':data});
},

onConfirmOperationType (e) {
let obj = e.detail.value;
this.setData({
'form.operationType':this.data.operationTypeOptions[obj].dictValue,
'operationTypeindex':obj
})
},
onConfirmAddType (e) {
let obj = e.detail.value;
this.setData({
'form.addWay':this.data.addWayOptions[obj].dictValue,
'addWayindex':obj
})
},
onConfirmUseType (e) {
let obj = e.detail.value;
this.setData({
'form.useType':this.data.useTypeOptions[obj].dictValue,
'useTypeindex':obj
})
},
onConfirmAssetStatus (e) {
let obj = e.detail.value;
this.setData({
'form.assetStatus':this.data.assetStatusOptions[obj].dictValue,
'assetStatusindex':obj
})
},
onConfirmIsMin (e) {
let obj = e.detail.value;
this.setData({
'form.isMin':this.data.isMinOptions[obj].dictValue,
'isMinindex':obj
})
},
onConfirmAssetType (e) {
let obj = e.detail.value;
this.setData({
'form.assetType':this.data.assetTypeOptions[obj].dictValue,
'assetTypeindex':obj
})
},
onConfirmIsFormAsset (e) {
let obj = e.detail.value;
this.setData({
'form.isFormAsset':this.data.isFormAssetOptions[obj].dictValue,
'isFormAssetindex':obj
})
},
onConfirmUnit (e) {
let obj = e.detail.value;
this.setData({
'form.unit':this.data.unitOptions[obj].dictValue,
'unitindex':obj
})
},
onConfirmDepreciationType (e) {
let obj = e.detail.value;
this.setData({
'form.depreciationType':this.data.depreciationTypeOptions[obj].dictValue,
'depreciationTypeindex':obj
})
},
getNewDate(date){
//date是传过来的时间戳,注意需为13位,10位需*1000
//也可以不传,获取的就是当前时间
var time = new Date(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.form.code==''||this.data.form.code==null){ //合同编码
UTIL.showToastNoneIcon('请填写资产编码!');
return false;
}else if(this.data.form.name==''||this.data.form.name==null){ //合同名称
UTIL.showToastNoneIcon('请输入资产名称!');
return false;
}else if(this.data.form.assetType==''||this.data.form.assetType==null){ //甲方
UTIL.showToastNoneIcon('资产类别不能为空!');
return false;
}else if(this.data.form.operationType==''||this.data.form.operationType==null){ //乙方
UTIL.showToastNoneIcon('经营属性不能为空!');
return false;
}else if(this.data.form.addType == ''||this.data.form.addType==null){//收付款类型
UTIL.showToastNoneIcon('增加方式能为空!');
return false;
}else if(this.data.form.buildTime == ''||this.data.form.buildTime==null){//合同来源
UTIL.showToastNoneIcon('构建时间不能为空!');
return false;
}else if(this.data.form.useType == ''||this.data.form.useType==null){//合同金额
UTIL.showToastNoneIcon('使用情况不能为空!');
return false;
}else if(this.data.form.assetStatus == ''||this.data.form.assetStatus==null){//签订日期
UTIL.showToastNoneIcon('资产状态不能为空!');
return false;
}else if(this.data.form.quantity == ''||this.data.form.quantity==null){//开始日期
UTIL.showToastNoneIcon('请输入数量、面积!');
return false;
}else if(this.data.form.unit == ''||this.data.form.unit==null){//结束日期
UTIL.showToastNoneIcon('计量单位不能为空!');
return false;
}else if(this.data.form.originalValue == ''||this.data.form.originalValue==null){//单价
UTIL.showToastNoneIcon('原值不能为空!');
return false;
}else if(this.data.form.depreciationType == ''||this.data.form.depreciationType==null){//已结款
UTIL.showToastNoneIcon('折旧方式不能为空!');
return false;
}else{
if(this.data.form.id!=null&&this.data.form.id!=""){
let data = this.data.form;
data.method = "POST";
UTIL.httpRequest(API.URL_POST_PERMANENTUPDATE,data,{
success: (res) => {
if(res.code == 200){
UTIL.showToastNoneIcon('修改成功');
}else{
UTIL.showToastNoneIcon('修改失败');
}
}
})
}else{
let data = this.data.form;
data.method = "POST";
UTIL.httpRequest(API.URL_POST_PERMANENTADD,data,{
success: (res) => {
if(res.code == 200){
UTIL.showToastNoneIcon(res.msg);
}else{
UTIL.showToastNoneIcon(res.msg);
}
}
})
}
}
},
bindNewInput: function (e) {
this.setData({
[e.currentTarget.dataset.name]: e.detail.value
})
console.log(e);
if(e.currentTarget.dataset.name == 'form.originalValue' ){
this.setData({
'form.netValue' : e.detail.value,
'form.netSalvage' : this.data.form.residualsRate*e.detail.value/100,
'form.perYearDepreciationValue' : (e.detail.value-(this.data.form.residualsRate*e.detail.value/100))/this.data.form.expectedYears
})
if(e.currentTarget.dataset.name == 'form.residualsRate' ){
this.setData({
'form.netSalvage' : this.data.form.originalValue*e.detail.value,
})
}
if(e.currentTarget.dataset.name == 'form.netSalvage' ){
this.setData({
'form.perYearDepreciationValue' : (this.data.form.originalValue-e.detail.value)/this.data.form.expectedYears
})
}
if(e.currentTarget.dataset.name == 'form.expectedYears' ){
this.setData({
'form.perYearDepreciationValue' : (this.data.form.originalValue-this.data.form.netSalvage)/e.detail.value
})
}
if(e.currentTarget.dataset.name == 'form.depreciationYears' ){
this.setData({
'form.depreciationValue' : this.data.form.netSalvage*e.detail.value
})
}
}
},
/**
* 生命周期函数--监听页面加载
*/
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});
console.log(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.assetStatusOptions':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() {

}
})

+ 9
- 0
pages/fixedAssets/add/add.json View File

@@ -0,0 +1,9 @@
{
"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"
}
}

+ 265
- 0
pages/fixedAssets/add/add.wxml View File

@@ -0,0 +1,265 @@
<!--pages/contract/add/add.wxml-->
<view class="ns" style="height:{{isIPX?'88px':'64px'}};">
<image src="../../../image/apply/back.png" style="top:{{isIPX?'54px':'30px'}};" 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" 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" 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: 22rpx;"></text>资产类别</view>
<picker bindchange="onConfirmAssetType" value="{{assetTypeindex}}" range="{{assetTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{assetTypeOptions[assetTypeindex].dictLabel?assetTypeOptions[assetTypeindex].dictLabel:"选择资产类别"}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 10rpx;">*</text>经营属性</view>
<picker bindchange="onConfirmOperationType" value="{{operationTypeindex}}" range="{{operationTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{operationTypeOptions[operationTypeindex].dictLabel?operationTypeOptions[operationTypeindex].dictLabel:"选择经营属性"}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 10rpx;">*</text>增加方式</view>
<picker bindchange="onConfirmAddType" value="{{addTypeindex}}" range="{{addOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{addTypeOptions[addTypeindex].dictLabel?addTypeOptions[addTypeindex].dictLabel:"选择增加方式"}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 10rpx;">*</text>构建时间</view>
<picker mode="date" value="{{form.buildTime}}" start="{{ minDate }}" end="{{ maxDate }}" bindchange="onConfirmBuildTime">
<view class="picker">
{{form.buildTime}}
</view>
</picker>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>坐落位置</text>
</view>
<view>
<input type="text" value="{{form.location}}" bindinput="bindNewInput" data-name="form.location" placeholder="请输入坐落位置" 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.specification}}" bindinput="bindNewInput" data-name="form.specification" placeholder="请输入规格型号" 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.supplier}}" bindinput="bindNewInput" data-name="form.supplier" 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="onConfirmUseType" value="{{useTypeindex}}" range="{{useTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{useTypeOptions[useTypeindex].dictLabel?useTypeOptions[useTypeindex].dictLabel:"选择使用情况"}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 10rpx;">*</text>资产状态</view>
<picker bindchange="onConfirmAssetStatus" value="{{assetStatusindex}}" range="{{assetStatusOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{assetStatusOptions[assetStatusindex].dictLabel?assetStatusOptions[assetStatusindex].dictLabel:"选择资产状态"}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 22rpx;"></text>单元资产</view>
<picker bindchange="onConfirmIsMin" value="{{isMinindex}}" range="{{sysYesNoOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{sysYesNoOptions[isMinindex].dictLabel?sysYesNoOptions[isMinindex].dictLabel:"选择单元资产"}}
</view>
</picker>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 22rpx;"></text>扶贫资产</view>
<picker bindchange="onConfirmIsFormAsset" value="{{isFormAssetindex}}" range="{{sysYesNoOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{sysYesNoOptions[isFormAssetindex].dictLabel?sysYesNoOptions[isFormAssetindex].dictLabel:"选择扶贫资产"}}
</view>
</picker>
</view>
</view>
</view>
<view class="main-box table-box" style="margin-top:15px;">
<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" data-name="form.quantity" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view class="section">
<view class="section__title"><text style="color:red;margin-right: 22rpx;"></text>计量单位</view>
<picker bindchange="onConfirmUnit" value="{{unitindex}}" range="{{unitOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{unitOptions[unitindex].dictLabel?unitOptions[unitindex].dictLabel:"选择计量单位"}}
</view>
</picker>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>原值(元)</text>
</view>
<view>
<input type="text" value="{{form.originalValue}}" bindinput="bindNewInput" data-name="form.originalValue" 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.netValue}}" bindinput="bindNewInput" data-name="form.netValue" style="text-align: right;margin-top: 20rpx;" />
</view>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>残值率 N%</text>
</view>
<view>
<input type="text" value="{{form.residualsRate}}" bindinput="bindNewInput" data-name="form.residualsRate" 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.netSalvage}}" bindinput="bindNewInput" data-name="form.netSalvage" 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.fixedValue}}" bindinput="bindNewInput" data-name="form.fixedValue" 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.fixedSubject}}" bindinput="bindNewInput" disabled="true" data-name="form.fixedSubject" 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.depreciationSubject}}" bindinput="bindNewInput" data-name="form.depreciationSubject" disabled="true" 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.depreciationFeeSubject}}" disabled="true" bindinput="bindNewInput" data-name="form.depreciationFeeSubject" 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;">
<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 class="section">
<view class="section__title"><text style="color:red;margin-right: 22rpx;"></text>折旧方式</view>
<picker bindchange="onConfirmDepreciationType" value="{{depreciationTypeindex}}" range="{{depreciationTypeOptions}}" range-key="{{'dictLabel'}}">
<view class="picker">
{{depreciationTypeOptions[depreciationTypeindex].dictLabel?depreciationTypeOptions[depreciationTypeindex].dictLabel:"选择折旧方式"}}
</view>
</picker>
</view>
<view>
<view>
<text><text style="color:red;margin-right: 22rpx;"></text>预计使用年数</text>
</view>
<view>
<input type="text" value="{{form.expectedYears}}" bindinput="bindNewInput" data-name="form.expectedYears" type="digit" placeholder="(原值-净残值)/预计使用年数" 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.perYearDepreciationValue}}" bindinput="bindNewInput" data-name="form.perYearDepreciationValue" type="digit" disabled="true" 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.depreciationYears}}" bindinput="bindNewInput" 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.depreciationValue}}" bindinput="bindNewInput" data-name="form.depreciationValue" disabled="true"
type="digit" 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/add/add.wxss View File

@@ -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;
}

+ 361
- 0
pages/fixedAssets/fixedAssets.js View File

@@ -0,0 +1,361 @@
// pages/bank/bank.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:[]
},
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_view").boundingClientRect()
qu.select("#top_ban").boundingClientRect()
qu.exec(res => {
that.setData({
scrollHeight:wx.getSystemInfoSync().windowHeight-res[0].height-res[0].top
})
})
},

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

//获取附件字典
UTIL.httpRequest(API.URL_GET_GETDICTTYPE + 'common_attach', {method:'GET'}, {
success: (res) => {
if(res.data.length>0){
this.setData({
uploadOptions:res.data,
})
}
}
})

this.getList();
},
getList:function(){
let params = {
pageNum:this.data.pageNums,
pageSize:10,
name:this.data.name
}
UTIL.httpRequest(API.URL_GET_PERMANENTLIST,params,{
success: (res) => {
console.log(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
})
_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 => {
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();
},
goUpdate(e){
wx.navigateTo({
url: '/pages/fixedAssets/add/add?id='+e.currentTarget.dataset.id,
})
},
delete(e){
UTIL.httpRequest(API.URL_GET_PERMANENTDELETE + e.currentTarget.dataset.id, {method:'GET'}, {
success: (res) => {
if(res.code==200){
let new_list = this.data.list
console.log(e.currentTarget.dataset.index);
new_list.splice(e.currentTarget.dataset.index,1)
this.setData({'list':new_list})
UTIL.showToastNoneIcon('删除成功!');
}else{
UTIL.showToastNoneIcon('删除失败!');
}
}
})
},
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_asset_permanent", //上传表
bizPath: "asset",
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
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) =>{
console.log(rr);
},
complete:(rr) => {
console.log(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
console.log(event);
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[0].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_asset_permanent", //上传表
bizPath: "asset",
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){
}
})
}
})
}
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {

},

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

},

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

},

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

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

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

}
})

+ 14
- 0
pages/fixedAssets/fixedAssets.json View File

@@ -0,0 +1,14 @@
{
"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"
}
}

+ 79
- 0
pages/fixedAssets/fixedAssets.wxml View File

@@ -0,0 +1,79 @@
<!--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'}};" mode="widthFix" bindtap="back" referrer="no-referrer|origin|unsafe-url"></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="{{ name }}"
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" 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>
<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.assetType}}
</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.buildTime}}</text>
</view>
<view style="width: 40%;text-align: right;">
原值:
<text style="color:red">¥{{item.originalValue}}</text>
</view>
</view>
</view>
<view slot="right" class="deleteBox">
<view style="flex: 1;height: 100%;display: flex;align-items: center;">
<image src="../../image/apply/icon_delete.png" style="width: 25px;height: 25px;margin: 0 auto;" data-id="{{item.id}}" data-index="{{index}}" bindtap="delete"></image>
</view>
<view style="flex: 1;height: 100%;display: flex;align-items: center;">
<image src="../../image/apply/icon_add.png" style="width: 25px;height: 25px;margin: 0 auto;" data-id="{{item.id}}" data-index="{{index}}" bindtap="upload"></image>
</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" multiple="{{true}}" 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>

+ 272
- 0
pages/fixedAssets/fixedAssets.wxss View File

@@ -0,0 +1,272 @@
/* 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;
}
.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: 14px;
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;
}

+ 8
- 16
pages/index/index.wxml View File

@@ -63,7 +63,7 @@
</view>
<text class="desc">记账申请</text>
</view>
<view class="tab_item" bindtap="showModal">
<view class="tab_item" data-url="/pages/finance/finance" bindtap="navigate">
<view class="icon">
<image class="icon_img" src="../../image/index/nav_04.png" mode="aspectFit"></image>
</view>
@@ -94,21 +94,13 @@
<text class="desc">工程项目</text>
</view>
<view class="flex_block" data-url="/pages/contract/contract" bindtap="navigate">
<view class="image"><image class="attribute" src="../../image/index/child_function_03.png" mode="aspectFit"></image></view>
<text class="desc">合同信息</text>
</view>
<view class="flex_block" bindtap="showModal">
<view class="image"><image class="attribute" src="../../image/index/child_function_09.png" mode="aspectFit"></image></view>
<text class="desc">合同报送</text>
</view>
<view class="flex_block" bindtap="showModal">
<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" bindtap="showModal">
<view class="image"><image class="attribute" src="../../image/index/child_function_05.png" mode="aspectFit"></image></view>
<text class="desc">资源变动</text>
</view>
<view class="image"><image class="attribute" src="../../image/index/child_function_03.png" mode="aspectFit"></image></view>
<text class="desc">合同信息</text>
</view>
<view class="flex_block" data-url="/pages/fixedAssets/fixedAssets" bindtap="navigate">
<view class="image"><image class="attribute" src="../../image/index/child_function_10.png" mode="aspectFit"></image></view>
<text class="desc">固定资产</text>
</view>
</block>
<view class="flex_block" bindtap="openView">
<view class="image"><image class="attribute" src="../../image/index/child_function_06.png" mode="aspectFit"></image></view>


+ 25
- 0
utils/API.js View File

@@ -242,6 +242,24 @@ const URL_GET_PROJECTADD = `${URL_PREFIX}/yinnong/project/add`;
//查询对方科目
const URL_GET_SUBJECTLIST = `${URL_PREFIX}/finance/subject/list?is_last=Y`;

//固定资产列表
const URL_GET_PERMANENTLIST = `${URL_PREFIX}/asset/permanent/list/`;

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

//查看资产详情
const URL_GET_PERMANENTDETAIL = `${URL_PREFIX}/asset/permanent/get/`;

//添加资产
const URL_POST_PERMANENTADD = `${URL_PREFIX}/asset/permanent/add/`;

//修改资产详情
const URL_POST_PERMANENTUPDATE = `${URL_PREFIX}/asset/permanent/edit/`;

//财务公开
const URL_GET_FINANCIALLIST = `${URL_PREFIX}/finance/open/financialAmountPublicMonthList/`;

/****************接口地址end****************/

export {
@@ -335,5 +353,12 @@ export {
URL_GET_ATTACHMENTLIST,
URL_GET_MONEYORDERADD,
URL_GET_PROJECTADD,
URL_GET_PERMANENTLIST,
URL_GET_PERMANENTDELETE,
URL_GET_PERMANENTDETAIL,
URL_POST_PERMANENTADD,
URL_POST_PERMANENTUPDATE,
URL_GET_FINANCIALLIST,
URL_GET_PROJECTADD,
URL_GET_SUBJECTLIST
}

+ 20
- 0
utils/util.js View File

@@ -382,6 +382,25 @@ function formatDate(unixtime) {
// return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;//年月日时分秒
return y + '-' + m + '-' + d;
}
/**
* 获取当前年-月-日
*/
function formatDates(unixtime) {
var date = new Date(unixtime);
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
var second = date.getSeconds();
minute = minute < 10 ? ('0' + minute) : minute;
second = second < 10 ? ('0' + second) : second;
// return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;//年月日时分秒
return y + '-' + m;
}
/**
* 将数字(整数)转为汉字
* @param num
@@ -444,6 +463,7 @@ export {
isIPhoneX,
js_date_time,
formatDate,
formatDates,
convertToChinaNum,
getTransform
}

Loading…
Cancel
Save