2026.1.21
1. 完成自巡查承诺;
2. 新增台账复制逻辑;
3. 新增上次office文件台账功能(待完成);
| | |
| | | type: String, |
| | | value: '' |
| | | }, |
| | | showClose: { |
| | | // 是否显示关闭按钮 |
| | | type: Boolean, |
| | | value: true |
| | | }, |
| | | showCancel: { |
| | | // 是否显示取消按钮 |
| | | type: Boolean, |
| | |
| | | <view wx:if="{{mask}}" class="weui-mask {{show ? '' : 'weui-mask_hidden'}} {{maskClass}}" bindtap="closeActionSheet"></view> |
| | | <view class="weui-actionsheet {{show ? 'weui-actionsheet_toggle' : ''}} {{extClass}}"> |
| | | <!-- 关闭图标 --> |
| | | <view class="close"> |
| | | <view wx:if="{{showClose}}" class="close"> |
| | | <mp-icon bindtap="closeActionSheet" icon="close" size="{{20}}"></mp-icon> |
| | | </view> |
| | | <!-- 标题 --> |
| | |
| | | data: { |
| | | currentFiles: [], |
| | | showPreview: false, |
| | | previewImageUrls: [] |
| | | previewImageUrls: [], |
| | | groups: [{ |
| | | text: '选择图片', |
| | | value: 0 |
| | | }, { |
| | | text: '从聊天记录选择文件', |
| | | value: 1 |
| | | }], |
| | | }, |
| | | |
| | | ready() {}, |
| | | |
| | | methods: { |
| | | showActionSheet() { |
| | | this.setData({ |
| | | showSheet: true |
| | | }) |
| | | }, |
| | | previewImage(e) { |
| | | const { |
| | | index |
| | |
| | | showPreview: true |
| | | }); |
| | | }, |
| | | previewFile(e) { |
| | | const { |
| | | index |
| | | } = e.currentTarget.dataset; |
| | | const file = this.data.files[index] |
| | | wx.openDocument({ |
| | | filePath: file.url, |
| | | }); |
| | | }, |
| | | actionClick(e) { |
| | | switch (e.detail.value) { |
| | | case 0: |
| | | this.chooseImage() |
| | | break; |
| | | case 1: |
| | | this.chooseMessageFile() |
| | | break; |
| | | default: |
| | | this.chooseImage() |
| | | break; |
| | | } |
| | | this.setData({ |
| | | showSheet: false |
| | | }) |
| | | }, |
| | | chooseImage() { |
| | | if (this.uploading) return; |
| | | wx.chooseImage({ |
| | | wx.chooseMedia({ |
| | | count: this.data.maxCount - this.data.files.length, |
| | | sizeType:['compressed'], |
| | | sizeType: ['compressed'], |
| | | mediaType: ['image'], |
| | | success: res => { |
| | | console.log('chooseImage resp', res) |
| | | // 首先检查文件大小 |
| | | let invalidIndex = -1; // @ts-ignore |
| | | res.tempFilePaths = res.tempFiles.map(item => item.tempFilePath) |
| | | res.tempFiles.forEach((item, index) => { |
| | | if (item.size > this.data.maxSize) { |
| | | invalidIndex = index; |
| | |
| | | }, {}); |
| | | return; |
| | | } // 获取文件内容 |
| | | |
| | | |
| | | |
| | | const mgr = wx.getFileSystemManager(); |
| | | const contents = res.tempFilePaths.map(item => { |
| | |
| | | }; // 触发选中的事件,开发者根据内容来上传文件,上传了把上传的结果反馈到files属性里面 |
| | | |
| | | this.triggerEvent('select', obj, {}); |
| | | // const files = res.tempFilePaths.map((item, i) => ({ |
| | | // loading: true, |
| | | // // @ts-ignore |
| | | // url: `data:image/jpg;base64,${wx.arrayBufferToBase64(contents[i])}` |
| | | // })); |
| | | // var locationPath = [] |
| | | // res.tempFilePaths.forEach(item =>{ |
| | | // wx.getImageInfo({ |
| | | // src: item, |
| | | // success(data){ |
| | | // console.log(data) |
| | | // locationPath = data.path |
| | | // } |
| | | // }) |
| | | // }) |
| | | |
| | | let files = res.tempFilePaths.map((item, i) => ({ |
| | | |
| | | let files = res.tempFiles.map((item, i) => ({ |
| | | loading: true, |
| | | url: item |
| | | url: item.tempFilePath, |
| | | type: item.fileType, |
| | | })) |
| | | //压缩图片 |
| | | wx.compressImage({ |
| | | src:files[0].url, |
| | | quality:20, |
| | | success(data){ |
| | | src: files[0].url, |
| | | quality: 20, |
| | | success(data) { |
| | | console.log('compressImage', data) |
| | | }, |
| | | fail(){ |
| | | fail() { |
| | | |
| | | } |
| | | }) |
| | | |
| | | |
| | | |
| | | |
| | | if (!files || !files.length) return; |
| | | const newFiles = this.data.files.concat(files); |
| | |
| | | } |
| | | }); |
| | | }, |
| | | chooseMessageFile() { |
| | | if (this.uploading) return; |
| | | wx.chooseMessageFile({ |
| | | count: this.data.maxCount - this.data.files.length, |
| | | type: 'file', |
| | | extension: ['xls', 'xlsx', 'csv', 'doc', 'docx', 'pdf', 'ppt', 'pptx'], |
| | | success: res => { |
| | | console.log('chooseMessageFile', res) |
| | | // 首先检查文件大小 |
| | | let invalidIndex = -1; // @ts-ignore |
| | | res.tempFilePaths = res.tempFiles.map(item => item.path) |
| | | res.tempFiles.forEach((item, index) => { |
| | | if (item.size > this.data.maxSize) { |
| | | invalidIndex = index; |
| | | } |
| | | }); |
| | | if (typeof this.data.select === 'function') { |
| | | const ret = this.data.select(res); |
| | | if (ret === false) { |
| | | return; |
| | | } |
| | | } |
| | | if (invalidIndex >= 0) { |
| | | this.triggerEvent('fail', { |
| | | type: 1, |
| | | errMsg: `chooseMessageFile:fail size exceed ${this.data.maxSize}`, |
| | | total: res.tempFilePaths.length, |
| | | index: invalidIndex |
| | | }, {}); |
| | | return; |
| | | } // 获取文件内容 |
| | | |
| | | |
| | | const mgr = wx.getFileSystemManager(); |
| | | const contents = res.tempFilePaths.map(item => { |
| | | // @ts-ignore |
| | | const fileContent = mgr.readFileSync(item); |
| | | return fileContent; |
| | | }); |
| | | const obj = { |
| | | tempFilePaths: res.tempFilePaths, |
| | | tempFiles: res.tempFiles, |
| | | contents |
| | | }; // 触发选中的事件,开发者根据内容来上传文件,上传了把上传的结果反馈到files属性里面 |
| | | |
| | | this.triggerEvent('select', obj, {}); |
| | | |
| | | let files = res.tempFiles.map((item, i) => { |
| | | // 判断文件类型,对应不同样式 |
| | | let extensionClass = '' |
| | | switch (item.name.split('.')[1]) { |
| | | case 'xls': |
| | | case 'xlsx': |
| | | case 'csv': |
| | | extensionClass = 'file_xlsx' |
| | | break; |
| | | case 'doc': |
| | | case 'docx': |
| | | extensionClass = 'file_word' |
| | | break; |
| | | case 'pdf': |
| | | extensionClass = 'file_pdf' |
| | | break; |
| | | case 'ppt': |
| | | case 'pptx': |
| | | extensionClass = 'file_ppt' |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | // 拆分文件名称,实现文本过长时,中间省略 |
| | | const ellipsisName = { |
| | | start: item.name.slice(0, -5), |
| | | // 取末尾5个字符常态显示 |
| | | end: item.name.substr(-5, 5) |
| | | } |
| | | // 文件大小格式化 |
| | | let size = parseInt(item.size / 1024) |
| | | if (size > 1024) { |
| | | size = parseInt(size / 1024) + ' MB' |
| | | } else { |
| | | size += ' KB' |
| | | } |
| | | return { |
| | | loading: true, |
| | | url: item.path, |
| | | name: item.name, |
| | | ellipsisName, |
| | | styleClass: extensionClass, |
| | | type: item.type, |
| | | time: item.time, |
| | | size |
| | | } |
| | | }) |
| | | if (!files || !files.length) return; |
| | | const newFiles = this.data.files.concat(files); |
| | | this.setData({ |
| | | files: newFiles, |
| | | currentFiles: newFiles |
| | | }); |
| | | this.triggerEvent('uploadImg', { |
| | | newFiles |
| | | }, {}) |
| | | } |
| | | }) |
| | | }, |
| | | deletePic(e) { |
| | | const index = e.detail.index; |
| | | const files = this.data.files; |
| | |
| | | index, |
| | | item: file[0] |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | |
| | | } |
| | | }); |
| | |
| | | { |
| | | "component": true, |
| | | "usingComponents": { |
| | | "mp-gallery": "../gallery/gallery" |
| | | "mp-gallery": "../gallery/gallery", |
| | | "mp-actionSheet": "/component/actionsheet/actionsheet" |
| | | } |
| | | } |
| | |
| | | <view class="weui-uploader__bd"> |
| | | <view class="weui-uploader__files"> |
| | | <block wx:for="{{currentFiles}}" wx:key="*this"> |
| | | <view |
| | | wx:if="{{item.error}}" |
| | | data-index="{{index}}" |
| | | bindtap="previewImage" |
| | | class="weui-uploader__file weui-uploader__file_status" |
| | | > |
| | | <image |
| | | class="weui-uploader__img" |
| | | src="{{item.url}}" |
| | | mode="aspectFill" |
| | | /> |
| | | <view class="weui-uploader__file-content"> |
| | | <icon type="warn" size="23" color="#F43530"></icon> |
| | | <!-- 图片 --> |
| | | <block wx:if="{{item.type == 'image'}}"> |
| | | <view |
| | | wx:if="{{item.error}}" |
| | | data-index="{{index}}" |
| | | bindtap="previewImage" |
| | | class="weui-uploader__file weui-uploader__file_status" |
| | | > |
| | | <image |
| | | class="weui-uploader__img" |
| | | src="{{item.url}}" |
| | | mode="aspectFill" |
| | | /> |
| | | <view class="weui-uploader__file-content"> |
| | | <icon type="warn" size="23" color="#F43530"></icon> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view |
| | | wx:elif="{{item.loading}}" |
| | | data-index="{{index}}" |
| | | bindtap="previewImage" |
| | | class="weui-uploader__file weui-uploader__file_status" |
| | | > |
| | | <image |
| | | class="weui-uploader__img" |
| | | src="{{item.url}}" |
| | | mode="aspectFill" |
| | | /> |
| | | <view class="weui-uploader__file-content"> |
| | | <view class="weui-loading"></view> |
| | | <view |
| | | wx:elif="{{item.loading}}" |
| | | data-index="{{index}}" |
| | | bindtap="previewImage" |
| | | class="weui-uploader__file weui-uploader__file_status" |
| | | > |
| | | <image |
| | | class="weui-uploader__img" |
| | | src="{{item.url}}" |
| | | mode="aspectFill" |
| | | /> |
| | | <view class="weui-uploader__file-content"> |
| | | <view class="weui-loading"></view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <view |
| | | wx:else |
| | | class="weui-uploader__file" |
| | | data-index="{{index}}" |
| | | bindtap="previewImage" |
| | | > |
| | | <image |
| | | class="weui-uploader__img" |
| | | src="{{item.url}}" |
| | | mode="aspectFill" |
| | | /> |
| | | </view> |
| | | <view |
| | | wx:else |
| | | class="weui-uploader__file" |
| | | data-index="{{index}}" |
| | | bindtap="previewImage" |
| | | > |
| | | <image |
| | | class="weui-uploader__img" |
| | | src="{{item.url}}" |
| | | mode="aspectFill" |
| | | /> |
| | | </view> |
| | | </block> |
| | | <block wx:elif="{{item.type == 'file'}}"> |
| | | <view |
| | | data-index="{{index}}" |
| | | bindtap="previewFile" |
| | | class="weui-uploader__file" |
| | | > |
| | | <view class="{{'weui-uploader__img uploader-preview__file ' + styleClass}}"> |
| | | <view class="wrap"> |
| | | <span class="{{'txt ' + styleClass}}">{{item.name}}</span> |
| | | <span class="{{'filename ' + styleClass}}" data-title="{{item.name}}" |
| | | >{{item.name}}</span |
| | | > |
| | | </view> |
| | | <text class="unit">{{item.size + ' KB'}}</text> |
| | | </view> |
| | | </view> |
| | | </block> |
| | | </block> |
| | | </view> |
| | | <view |
| | |
| | | class="weui-uploader__input-box" |
| | | hover-class="weui-active" |
| | | > |
| | | <view class="weui-uploader__input" bindtap="chooseImage"></view> |
| | | <view class="weui-uploader__input" bindtap="showActionSheet"></view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | |
| | | img-urls="{{previewImageUrls}}" |
| | | current="{{previewCurrent}}" |
| | | ></mp-gallery> |
| | | <mp-actionSheet |
| | | bindactiontap="actionClick" |
| | | show="{{showSheet}}" |
| | | actions="{{groups}}" |
| | | showCancel="{{true}}" |
| | | showClose="{{false}}" |
| | | > |
| | | </mp-actionSheet> |
| | |
| | | .uploader-preview__file { |
| | | --default-bg-color: #888888; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | background-color: var(--default-bg-color); |
| | | color: white; |
| | | height: 100%; |
| | | font-size: 12px; |
| | | } |
| | | |
| | | .wrap { |
| | | /* background-color: rgb(109, 109, 4); */ |
| | | height: 3em; |
| | | line-height: 1.5; |
| | | overflow: hidden; |
| | | margin: 8rpx 8rpx 0 8rpx; |
| | | } |
| | | |
| | | .wrap .txt { |
| | | display: block; |
| | | max-height: 3em; |
| | | /* margin: 8rpx 8rpx 0 8rpx; */ |
| | | } |
| | | |
| | | .wrap .filename { |
| | | position: relative; |
| | | /* display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | | -webkit-box-orient: vertical; */ |
| | | /* display: none; */ |
| | | top: -3em; |
| | | background-color: rgb(115, 172, 118); |
| | | /* background-color: var(--default-bg-color); */ |
| | | overflow: hidden; |
| | | /* text-overflow: ellipsis; */ |
| | | text-align: justify; |
| | | /* white-space: nowrap; */ |
| | | /* margin: 8rpx 8rpx 0 8rpx; */ |
| | | } |
| | | |
| | | .filename::before { |
| | | content: attr(data-title); |
| | | width: 100%; |
| | | float: right; |
| | | margin-top: 1.5em; |
| | | white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | direction: rtl; |
| | | /* background-color: rgb(141, 141, 3); */ |
| | | background-color: var(--default-bg-color); |
| | | } |
| | | |
| | | .unit { |
| | | margin: 0rpx 8rpx 8rpx 8rpx; |
| | | } |
| | | |
| | | .file_xlsx {} |
| | | |
| | | .file_word {} |
| | | |
| | | .file_pdf {} |
| | | |
| | | .file_ppt {} |
| | |
| | | key: 'user_setting', |
| | | data: res.data, |
| | | }); |
| | | console.log('app.globalData.userSetting', app.globalData.userSetting); |
| | | resolve() |
| | | }, |
| | | fail: e => { |
| | |
| | | }, |
| | | ); |
| | | }, |
| | | |
| | | _uploadCopyLedger(copyLedgerList) { |
| | | const time = moment().format('YYYY-MM'); |
| | | ledgerservice.copyLedger(app.globalData.accessToken.userId, time,copyLedgerList, { |
| | | success:res=>{ |
| | | this.setData({ loading: false }); |
| | | if (typeof this._success === 'function') { |
| | | this._success(res); |
| | | } |
| | | }, |
| | | fail(err) { |
| | | this.setData({ loading: false }); |
| | | }, |
| | | }) |
| | | } |
| | | }, |
| | | }); |
| | |
| | | const app = getApp(); |
| | | |
| | | /** |
| | | * 自巡查上传管理 |
| | | * 应急自巡查上传管理 |
| | | */ |
| | | module.exports = Behavior({ |
| | | behaviors: [bUpload, bLoadingStatus], |
| | |
| | | }, |
| | | ); |
| | | }, |
| | | gotoLedgerDetail(e) { |
| | | var indexGroup = e.currentTarget.dataset.index; |
| | | // var indexGroup = [parseInt(i[0]), parseInt(i[1])]; |
| | | var ledger = this.data.pageList[indexGroup[0]][indexGroup[1]]; |
| | | // gotoLedgerDetail(e) { |
| | | // var indexGroup = e.currentTarget.dataset.index; |
| | | // // var indexGroup = [parseInt(i[0]), parseInt(i[1])]; |
| | | // var ledger = this.data.pageList[indexGroup[0]][indexGroup[1]]; |
| | | |
| | | var that = this; |
| | | wx.navigateTo({ |
| | | url: '/pages/mLedger/ledgerupload/ledgerupload', |
| | | events: { |
| | | uploadOver: function (data) { |
| | | let i = data.indexGroup; |
| | | let { pageList, tabList } = that.data; |
| | | tabList[i[0]].tag--; |
| | | pageList[i[0]][i[1]].upLoad = true; |
| | | pageList[i[0]][i[1]].tag = '/res/icons/round_check_fill.png'; |
| | | pageList[i[0]][i[1]].opacity = 0.7; |
| | | that.setData({ |
| | | pageList, |
| | | tabList, |
| | | }); |
| | | }, |
| | | }, |
| | | success: res => { |
| | | // 通过 eventChannel 向被打开页面传送数据 |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { |
| | | ledger: ledger, |
| | | indexGroup: indexGroup, |
| | | type: 0, |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | | // var that = this; |
| | | // wx.navigateTo({ |
| | | // url: '/pages/mLedger/ledgerupload/ledgerupload', |
| | | // events: { |
| | | // uploadOver: function (data) { |
| | | // let i = data.indexGroup; |
| | | // let { pageList, tabList } = that.data; |
| | | // tabList[i[0]].tag--; |
| | | // pageList[i[0]][i[1]].upLoad = true; |
| | | // pageList[i[0]][i[1]].tag = '/res/icons/round_check_fill.png'; |
| | | // pageList[i[0]][i[1]].opacity = 0.7; |
| | | // that.setData({ |
| | | // pageList, |
| | | // tabList, |
| | | // }); |
| | | // }, |
| | | // }, |
| | | // success: res => { |
| | | // // 通过 eventChannel 向被打开页面传送数据 |
| | | // res.eventChannel.emit('acceptDataFromOpenerPage', { |
| | | // ledger: ledger, |
| | | // indexGroup: indexGroup, |
| | | // type: 0, |
| | | // }); |
| | | // }, |
| | | // }); |
| | | // }, |
| | | }); |
| | |
| | | }, |
| | | onTabsClick(e){ |
| | | |
| | | } |
| | | }, |
| | | gotoLedgerDetail(e) { |
| | | var indexGroup = e.currentTarget.dataset.index; |
| | | // var indexGroup = [parseInt(i[0]), parseInt(i[1])]; |
| | | var ledger = this.data.pageList[indexGroup[0]][indexGroup[1]]; |
| | | |
| | | var that = this; |
| | | wx.navigateTo({ |
| | | url: '/pages/mLedger/ledgerupload/ledgerupload', |
| | | events: { |
| | | uploadOver: function (data) { |
| | | let i = data.indexGroup; |
| | | let { pageList, tabList } = that.data; |
| | | tabList[i[0]].tag--; |
| | | pageList[i[0]][i[1]].upLoad = true; |
| | | pageList[i[0]][i[1]].tag = '/res/icons/round_check_fill.png'; |
| | | pageList[i[0]][i[1]].opacity = 0.7; |
| | | that.setData({ |
| | | pageList, |
| | | tabList, |
| | | }); |
| | | }, |
| | | }, |
| | | success: res => { |
| | | // 通过 eventChannel 向被打开页面传送数据 |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { |
| | | ledger: ledger, |
| | | indexGroup: indexGroup, |
| | | type: 0, |
| | | }); |
| | | }, |
| | | }); |
| | | }, |
| | | }, |
| | | }); |
| | |
| | | previewCurrent: 0, |
| | | showPreview: false, |
| | | |
| | | // 上传模式,0:普通上传;1:不涉及;2:延用复制历史记录 |
| | | uploadMode: 0, |
| | | // 类型,0:台账和自巡查;1:应急自巡查 |
| | | type: 0, |
| | | // 历史最新记录 |
| | | lastLedger: undefined, |
| | | |
| | | |
| | | }, |
| | | |
| | | /** |
| | |
| | | }); |
| | | |
| | | that.checkStatus(); |
| | | |
| | | // 对于可复制的并且不是重传状态的台账,获取最新的历史记录用于复制 |
| | | if (data.ledger.copy && !data.reUpload) { |
| | | that.getLatestLedger() |
| | | } |
| | | }, |
| | | ); |
| | | }, |
| | |
| | | let remark = this.data.remark; |
| | | if (this.data.ledger.remark1) remark = this.data.ledger.remark1; |
| | | let remarkDisable = true; |
| | | this.setData({ imgFiles, remark, remarkDisable }); |
| | | this.setData({ |
| | | imgFiles, |
| | | remark, |
| | | remarkDisable |
| | | }); |
| | | } else if (this.data.ledger.upLoad) { |
| | | var that = this; |
| | | var userId = app.globalData.accessToken.userId; |
| | |
| | | let imgFiles = detail.path1; |
| | | let remark = detail.remark1 ? detail.remark1 : ''; |
| | | let remarkDisable = true; |
| | | that.setData({ imgFiles, remark, remarkDisable, detail }); |
| | | that.setData({ |
| | | imgFiles, |
| | | remark, |
| | | remarkDisable, |
| | | detail |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | |
| | | let imgFiles = detail.path1; |
| | | let remark = detail.remark1 ? detail.remark1 : ''; |
| | | let remarkDisable = true; |
| | | that.setData({ imgFiles, remark, remarkDisable, detail }); |
| | | that.setData({ |
| | | imgFiles, |
| | | remark, |
| | | remarkDisable, |
| | | detail |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 获取最新一次的历史记录,用于延用复制功能 |
| | | getLatestLedger() { |
| | | var userId = app.globalData.accessToken.userId; |
| | | var typeId = this.data.ledger.ledgerSubTypeId; |
| | | var sceneType = app.globalData.userInfo.extension2; |
| | | this.setData({ |
| | | latestLedgerLoading: true |
| | | }) |
| | | ledgerservice.getLedgerDetail(userId, typeId, sceneType, null, { |
| | | success: (res) => { |
| | | if (res.length > 0) { |
| | | const ledger = res[0] |
| | | this.setData({ |
| | | lastLedger: { |
| | | ...ledger, |
| | | _updateTimeStr: moment(ledger.updateDate).format('YYYY年MM月DD日') |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | complete: () => { |
| | | this.setData({ |
| | | latestLedgerLoading: false |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 上传台账 |
| | |
| | | }); |
| | | }, |
| | | |
| | | // 延用复制台账 |
| | | onCopyLedger() { |
| | | if (this.data.latestLedgerLoading) { |
| | | return |
| | | } else if (this.data.lastLedger == undefined) { |
| | | wx.showToast({ |
| | | title: '没有可延用的记录', |
| | | icon: 'none', |
| | | }); |
| | | } else { |
| | | this.setData({ |
| | | showDialog: true, |
| | | uploadMode: 2, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | //提交台账 |
| | | submitLedger() { |
| | | this.setData({ |
| | | showDialog: false, |
| | | }); |
| | | if (this.data.uploadMode == 0) { |
| | | if (this.data.type == 0) { |
| | | this._uploadLedger(); |
| | | } else { |
| | | this._uploadSelfPatrol(); |
| | | } |
| | | } else { |
| | | if (this.data.type == 0) { |
| | | this._uploadNoLedger(); |
| | | } else { |
| | | this._uploadNoSelfPatrol(); |
| | | } |
| | | switch (this.data.uploadMode) { |
| | | case 0: |
| | | if (this.data.type == 0) { |
| | | this._uploadLedger(); |
| | | } else { |
| | | this._uploadSelfPatrol(); |
| | | } |
| | | break; |
| | | case 1: |
| | | if (this.data.type == 0) { |
| | | this._uploadNoLedger(); |
| | | } else { |
| | | this._uploadNoSelfPatrol(); |
| | | } |
| | | break; |
| | | case 2: |
| | | if (this.data.type == 0) { |
| | | const { |
| | | lastLedger |
| | | } = this.data |
| | | const copyLedgerList = [{ |
| | | subTypeId: lastLedger.ledgerSubTypeId, |
| | | time: `${lastLedger.year}-${lastLedger.month}` |
| | | }] |
| | | this._uploadCopyLedger(copyLedgerList); |
| | | } |
| | | break; |
| | | |
| | | default: |
| | | break; |
| | | } |
| | | }, |
| | | |
| | | // 跳转重传界面 |
| | | reUpload() { |
| | | wx.navigateTo({ |
| | | url: '/pages/mLedger/ledgerupload/ledgerupload', |
| | |
| | | |
| | | //图片放大预览 |
| | | previewImage(e) { |
| | | const { index } = e.currentTarget.dataset; |
| | | const { |
| | | index |
| | | } = e.currentTarget.dataset; |
| | | const previewImageUrls = this.data.imgFiles; |
| | | this.setData({ |
| | | previewImageUrls, |
| | |
| | | }); |
| | | }, |
| | | |
| | | // 台账备注监听 |
| | | onRemarkChange(e) { |
| | | const { value } = e.detail; |
| | | this.setData({ remark: value }); |
| | | const { |
| | | value |
| | | } = e.detail; |
| | | this.setData({ |
| | | remark: value |
| | | }); |
| | | }, |
| | | }); |
| | | }); |
| | |
| | | </view> |
| | | <text>{{ledger.description}}</text> |
| | | </view> |
| | | <view |
| | | wx:if="{{!ledger.upLoad || reUpload}}" |
| | | class="weui-upload-view" |
| | | style="margin-top: 16px" |
| | | > |
| | | <mp-upload |
| | | title="上传图片(必填)" |
| | | titleClass="upload-title-class" |
| | | max-count="6" |
| | | files="{{imgFiles}}" |
| | | binduploadImg="uploadFile" |
| | | binddelete="delImg" |
| | | ></mp-upload> |
| | | <textarea |
| | | disabled="{{remarkDisable}}" |
| | | value="{{remark}}" |
| | | class="text-area" |
| | | auto-height="{{false}}" |
| | | name="des" |
| | | placeholder="添加备注(选填)" |
| | | bindinput="onRemarkChange" |
| | | ></textarea> |
| | | <view wx:if="{{!ledger.upLoad || reUpload}}" class="weui-upload-view" style="margin-top: 16px"> |
| | | <mp-upload title="上传图片(必填)" titleClass="upload-title-class" max-count="6" files="{{imgFiles}}" binduploadImg="uploadFile" binddelete="delImg"></mp-upload> |
| | | <textarea disabled="{{remarkDisable}}" value="{{remark}}" class="text-area" auto-height="{{false}}" name="des" placeholder="添加备注(选填)" bindinput="onRemarkChange"></textarea> |
| | | </view> |
| | | <block wx:else> |
| | | <view style="font-size: 14px; margin-top: 16px">图片</view> |
| | | <view class="img-group"> |
| | | <image |
| | | wx:for="{{imgFiles}}" |
| | | wx:key="index" |
| | | class="img-group_img" |
| | | src="{{item}}" |
| | | mode="aspectFill" |
| | | bindtap="previewImage" |
| | | data-index="{{index}}" |
| | | show-menu-by-longpress="{{true}}" |
| | | ></image> |
| | | <image wx:for="{{imgFiles}}" wx:key="index" class="img-group_img" src="{{item}}" mode="aspectFill" bindtap="previewImage" data-index="{{index}}" show-menu-by-longpress="{{true}}"></image> |
| | | </view> |
| | | <view style="font-size: 14px; margin-top: 16px">备注</view> |
| | | <textarea |
| | | class="text-area text-area-read" |
| | | placeholder="无备注" |
| | | value="{{remark}}" |
| | | ></textarea> |
| | | <textarea class="text-area text-area-read" placeholder="无备注" value="{{remark}}"></textarea> |
| | | </block> |
| | | </view> |
| | | <view class="page__ft"> |
| | | <view wx:if="{{!ledger.upLoad || reUpload}}" class="fix-bottom"> |
| | | <view |
| | | wx:if="{{ledger.notRelated}}" |
| | | class="submit submit-2 left" |
| | | bindtap="onSubmitNoLedger" |
| | | >不涉及</view |
| | | > |
| | | <view wx:if="{{type == 0 && ledger.copy && !reUpload}}" class="submit submit-3 left" bindtap="onCopyLedger"> |
| | | <t-loading wx:if="{{latestLedgerLoading}}" theme="spinner" size="20rpx" class="wrapper" /> |
| | | <text>延用</text> |
| | | <!-- <view class="small-tag-text"> |
| | | <text wx:if="{{lastLedger}}">上次记录:{{lastLedger._updateTimeStr}}</text> |
| | | <text wx:else>无上传记录</text> |
| | | </view> --> |
| | | </view> |
| | | <view wx:if="{{ledger.notRelated}}" class="submit submit-2 left" bindtap="onSubmitNoLedger">不涉及</view> |
| | | <view class="submit right" bindtap="onSubmit">提交</view> |
| | | </view> |
| | | <view wx:else class="fix-bottom"> |
| | |
| | | </view> |
| | | |
| | | <c-dialog show="{{showDialog}}" yes="确认" bindconfirm="submitLedger"> |
| | | <view>{{uploadMode == 0 ? '确认是否提交?' : '确认不涉及?'}}</view> |
| | | <view wx:if="{{uploadMode == 0}}">确认是否提交?</view> |
| | | <view wx:elif="{{uploadMode == 1}}">确认不涉及?</view> |
| | | <view wx:else="{{uploadMode == 2}}"> |
| | | <view>上次记录:{{lastLedger._updateTimeStr}}</view> |
| | | <view>确认延用?</view> |
| | | </view> |
| | | </c-dialog> |
| | | <!-- <mp-gallery |
| | | class="gallery" |
| | | hide-on-click="{{true}}" |
| | | show-delete="{{false}}" |
| | | show="{{showPreview}}" |
| | | img-urls="{{previewImageUrls}}" |
| | | current="{{previewCurrent}}" |
| | | ></mp-gallery> --> |
| | | <my-gallery |
| | | hide-on-click="{{true}}" |
| | | show-delete="{{false}}" |
| | | show="{{showPreview}}" |
| | | img-urls="{{previewImageUrls}}" |
| | | current="{{previewCurrent}}" |
| | | ></my-gallery> |
| | | </view> |
| | | <my-gallery hide-on-click="{{true}}" show-delete="{{false}}" show="{{showPreview}}" img-urls="{{previewImageUrls}}" current="{{previewCurrent}}"></my-gallery> |
| | | </view> |
| | |
| | | padding-top: 0; |
| | | display: flex; |
| | | align-items: flex-end; |
| | | z-index: 1; |
| | | background-color: white; |
| | | } |
| | | |
| | |
| | | background: #dfdfdf; |
| | | } |
| | | |
| | | .submit-3 { |
| | | background: white; |
| | | border: 1px solid #005994; |
| | | color: #005994; |
| | | padding: 7px 0; |
| | | } |
| | | |
| | | .submit-2:active { |
| | | background: #dfdfdf; |
| | | } |
| | | |
| | | .ledger-des { |
| | | font-size: 12px; |
| | | color: var(--fyui-text-color_2); |
| | | background-color: var(--fyui-BG_1); |
| | | padding: 4px; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | /* .small-tag-text { |
| | | position: absolute; |
| | | bottom: 40rpx; |
| | | font-size: 10px; |
| | | } */ |
| | | |
| | | |
| | | .custom-action { |
| | | position: relative; |
| | | min-height: 40vh; |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | |
| | | .custom-action__bg{ |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | } |
| | | |
| | | .custom-action__tag{ |
| | | font-size: 14px; |
| | | color: var(--fyui-text-color_1); |
| | | font-weight: 600; |
| | | width: 50%; |
| | | text-align: center; |
| | | z-index: 2; |
| | | } |
| | | |
| | | .custom-action__tag>image{ |
| | | width: 64px; |
| | | height: 64px; |
| | | } |
| | |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 查看自巡查承诺 |
| | | */ |
| | | reviewPromise() { |
| | | wx.navigateTo({ |
| | | url: '/pages/mSelfPatrol/patrolpromise/index', |
| | | success: (res)=> { |
| | | // 通过 eventChannel 向被打开页面传送数据 |
| | | res.eventChannel.emit('acceptDataFromOpenerPage', { |
| | | review: true |
| | | }); |
| | | }, |
| | | }); |
| | | } |
| | | }, |
| | | }); |
| | |
| | | <view |
| | | wx:else |
| | | class="self-patrol-promise-done" |
| | | bindtap="reviewPromise" |
| | | > |
| | | <t-icon name="check" size="32rpx" /> |
| | | <text class="promise-done-text">自巡查承诺已签署</text> |
| | | <text class="promise-done-text">自巡查承诺已签署,有效期延长为当年有效!</text> |
| | | <text class="promise_btn">查看承诺书 ></text> |
| | | </view> |
| | | <view class="self-patrol-static"> |
| | | <view class="head_right"> |
| | |
| | | content: '确认', |
| | | variant: 'base' |
| | | }, |
| | | isReview:false, |
| | | }, |
| | | |
| | | /** |
| | |
| | | this.setData({ |
| | | date: now.format('YYYY年MM月DD日'), |
| | | }); |
| | | |
| | | // 获取参数:是否是查看承诺书 |
| | | this.getOpenerEventChannel().on( |
| | | 'acceptDataFromOpenerPage', |
| | | (data) => { |
| | | this.setData({ |
| | | isReview: data.review |
| | | }) |
| | | }, |
| | | ); |
| | | }, |
| | | |
| | | checkboxChange(e) { |
| | |
| | | <view class="p-title">环保自巡查承诺书</view> |
| | | <text class="p-content"> {{promiseText}} </text> |
| | | <text style="text-align: end">\n签署时间:{{date}}</text> |
| | | <text style="font-weight: 600" |
| | | <text wx:if="{{!isReview}}" style="font-weight: 600" |
| | | >\n*请仔细阅读以上承诺条款,确认无误后请在下方签署</text |
| | | > |
| | | </view> |
| | | </view> |
| | | <view class="page__ft"> |
| | | <view class="weui-agree"> |
| | | <label bindtap="checkboxChange"> |
| | | <checkbox |
| | | class="weui-agree__checkbox-check" |
| | | value="{{agree}}" |
| | | checked="{{agree}}" |
| | | /> |
| | | <span class="weui-agree__checkbox"></span> |
| | | <span class="weui-agree__text" |
| | | >我已阅读、理解并同意以上《环保自巡查承诺书》的全部内容。</span |
| | | > |
| | | </label> |
| | | </view> |
| | | <view class="submit" bindtap="showCheckDialog">签署</view> |
| | | <template wx:if="{{!isReview}}"> |
| | | <view class="weui-agree"> |
| | | <label bindtap="checkboxChange"> |
| | | <checkbox |
| | | class="weui-agree__checkbox-check" |
| | | value="{{agree}}" |
| | | checked="{{agree}}" |
| | | /> |
| | | <span class="weui-agree__checkbox"></span> |
| | | <span class="weui-agree__text" |
| | | >我已阅读、理解并同意以上《环保自巡查承诺书》的全部内容。</span |
| | | > |
| | | </label> |
| | | </view> |
| | | <view class="submit" bindtap="showCheckDialog">签署</view> |
| | | </template> |
| | | </view> |
| | | </view> |
| | | <t-dialog |
| | |
| | | |
| | | $f.get(fun1); |
| | | }, |
| | | |
| | | /** |
| | | * 复制台账 |
| | | * @param {string} userId 用户id |
| | | * @param {string} time 年月,格式YYYY-MM |
| | | * @param {Array} sourceLedgerList 台账复制源{subTypeId:待复制的台账类型id, time: 待复制的台账所在月份,不填写则默认使用最新一条记录作为复制源} |
| | | * @param {*} fun |
| | | */ |
| | | copyLedger: function (userId, time, sourceLedgerList, fun) { |
| | | let cb = { |
| | | url: '/ledger/copy', |
| | | params: { |
| | | userId: userId, |
| | | time: time, |
| | | }, |
| | | data: sourceLedgerList, |
| | | }; |
| | | Object.assign(cb, fun); |
| | | |
| | | $f.post(cb); |
| | | }, |
| | | }; |