You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							254 lines
						
					
					
						
							7.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							254 lines
						
					
					
						
							7.8 KiB
						
					
					
				
								import {agencygridtree, getCategoryTree, icEvent12345, icEventOld, icEventOldReply} from "../../utils/statisticsApi";
							 | 
						|
								
							 | 
						|
								const config = require('../../utils/config')
							 | 
						|
								Component({
							 | 
						|
								    properties: {
							 | 
						|
								        visible: {
							 | 
						|
								            type: Boolean,
							 | 
						|
								            value: false
							 | 
						|
								        },
							 | 
						|
								        eventId: {
							 | 
						|
								            type: String,
							 | 
						|
								            value: '',
							 | 
						|
								            observer: function (val) {
							 | 
						|
								                console.log(val)
							 | 
						|
								                this.setData({
							 | 
						|
								                    id: val
							 | 
						|
								                })
							 | 
						|
								                this.getData()
							 | 
						|
								            }
							 | 
						|
								        },
							 | 
						|
								        is12345: {
							 | 
						|
								            type: Boolean,
							 | 
						|
								            value: true
							 | 
						|
								        }
							 | 
						|
								    },
							 | 
						|
								    data: {
							 | 
						|
								        value: 666,
							 | 
						|
								
							 | 
						|
								        detail: {},
							 | 
						|
								        agencyId: '',
							 | 
						|
								        id: '',
							 | 
						|
								        loading: true,
							 | 
						|
								
							 | 
						|
								        fileList: [],
							 | 
						|
								        timeLimit: [],
							 | 
						|
								        operationType: ["5"],
							 | 
						|
								        form: {
							 | 
						|
								            operationType: "5", //处理方式[0:已回复 5、指派  6、完成并回复]
							 | 
						|
								            content: "",//转办意见
							 | 
						|
								            timeLimit: "",//办结时限
							 | 
						|
								            categoryId: "",//事件分类
							 | 
						|
								            deptId: "", //指派部门
							 | 
						|
								            deptName: "",
							 | 
						|
								            categoryList: [],
							 | 
						|
								            files: [] //附件
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        orgOptions: [],
							 | 
						|
								        casOptions: [],
							 | 
						|
								
							 | 
						|
								        visible1: false,
							 | 
						|
								        visible2: false,
							 | 
						|
								        catField: {text: 'categoryName', value: 'id', children: 'children'},
							 | 
						|
								        orgField: {text: 'agencyName', value: 'agencyId', children: 'subAgencyList'},
							 | 
						|
								        orgName: "",
							 | 
						|
								        category: ""
							 | 
						|
								    },
							 | 
						|
								    ready: function () {
							 | 
						|
								    },
							 | 
						|
								
							 | 
						|
								    methods: {
							 | 
						|
								        operationTypeChange(e) {
							 | 
						|
								            console.log(e.detail)
							 | 
						|
								            this.setData({
							 | 
						|
								                operationType: e.detail,
							 | 
						|
								                "form.operationType": e.detail[0]
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								        onOpen1() {
							 | 
						|
								            this.setData({visible1: true})
							 | 
						|
								        },
							 | 
						|
								        onClose1() {
							 | 
						|
								            this.setData({visible1: false})
							 | 
						|
								            console.log('onClose1')
							 | 
						|
								        },
							 | 
						|
								        onConfirm1(e) {
							 | 
						|
								            console.log('onConfirm1', e.detail)
							 | 
						|
								            let data = e.detail
							 | 
						|
								            let params = data.selectedOptions[data.selectedOptions.length - 1]
							 | 
						|
								            this.setData({
							 | 
						|
								                "form.categoryId": params.id,
							 | 
						|
								                "form.categoryList": {...params, children: null},
							 | 
						|
								                visible1: false
							 | 
						|
								            })
							 | 
						|
								            this.setData({category:  data.selectedOptions.map(item => item.categoryName).join('/')})
							 | 
						|
								        },
							 | 
						|
								        setContent(e) {
							 | 
						|
								            console.log(e, 'eee')
							 | 
						|
								            this.setData({
							 | 
						|
								                "form.content": e.detail.value
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								        onOpen2() {
							 | 
						|
								            this.setData({visible2: true})
							 | 
						|
								        },
							 | 
						|
								        onClose2() {
							 | 
						|
								            this.setData({visible2: false})
							 | 
						|
								            console.log('onClose2')
							 | 
						|
								        },
							 | 
						|
								        onConfirm2(e) {
							 | 
						|
								            let data = e.detail
							 | 
						|
								
							 | 
						|
								            let params = data.selectedOptions[data.selectedOptions.length - 1]
							 | 
						|
								            this.setData({
							 | 
						|
								                "form.deptId": params.agencyId,
							 | 
						|
								                "form.deptName": params.agencyName,
							 | 
						|
								                "form.orgType": params.level,
							 | 
						|
								                visible2: false
							 | 
						|
								            })
							 | 
						|
								            this.setData({orgName: data.selectedOptions.map(item => item.agencyName).join('/')})
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								        getData() {
							 | 
						|
								            if (this.data.is12345) {
							 | 
						|
								                icEvent12345({icEventId: this.data.id}).then(res => {
							 | 
						|
								                    this.getDetail(res.data);
							 | 
						|
								                })
							 | 
						|
								            } else {
							 | 
						|
								                icEventOld({icEventId: this.data.id}).then(res => {
							 | 
						|
								                    this.getDetail(res.data);
							 | 
						|
								                })
							 | 
						|
								            }
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        getDetail(data) {
							 | 
						|
								            this.setData({
							 | 
						|
								                detail: data,
							 | 
						|
								                agencyId: data.agencyId
							 | 
						|
								            })
							 | 
						|
								            this.getOrgTreeList();
							 | 
						|
								            this.getCategoryList();
							 | 
						|
								        },
							 | 
						|
								        getOrgTreeList() {
							 | 
						|
								            let params = {
							 | 
						|
								                agencyId: this.data.agencyId,
							 | 
						|
								                purpose: "query"
							 | 
						|
								            }
							 | 
						|
								            agencygridtree(params).then(res => {
							 | 
						|
								                this.setData({
							 | 
						|
								                    orgOptions: this.deleteChildren(res.data.subAgencyList, 'subAgencyList')
							 | 
						|
								                })
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								        //重构树,去除网格
							 | 
						|
								        deepTree(arr, children) {
							 | 
						|
								            if (Array.isArray(arr) && arr.length > 0) {
							 | 
						|
								                return arr.map((item) => {
							 | 
						|
								                    return {
							 | 
						|
								                        ...item,
							 | 
						|
								                        [children]:
							 | 
						|
								                        (item[children] &&
							 | 
						|
								                            item[children].length > 0 &&
							 | 
						|
								                            this.deepTree(item[children], children)) ||
							 | 
						|
								                        null,
							 | 
						|
								                    };
							 | 
						|
								                });
							 | 
						|
								            }
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        getCategoryList() {
							 | 
						|
								            let params = {};
							 | 
						|
								            getCategoryTree(params).then(res => {
							 | 
						|
								                let treeDataNew = this.deepTree(res.data, "children");
							 | 
						|
								                console.log(treeDataNew, 'treeDataNew')
							 | 
						|
								                this.setData({
							 | 
						|
								                    casOptions: this.deleteChildren(treeDataNew, "children")
							 | 
						|
								                });
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								        deleteChildren(node, key) {
							 | 
						|
								            node.forEach(item => {
							 | 
						|
								                if (key in item && !item[key]) {
							 | 
						|
								                    delete item[key]
							 | 
						|
								                } else if (key in item && item[key].length) {
							 | 
						|
								                    this.deleteChildren(item[key], key)
							 | 
						|
								                }
							 | 
						|
								            })
							 | 
						|
								            return node
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        close() {
							 | 
						|
								            this.triggerEvent('close')
							 | 
						|
								        },
							 | 
						|
								        openCalendar1() {
							 | 
						|
								            this.setData({
							 | 
						|
								                showDate: true
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								        onCloseDate() {
							 | 
						|
								            this.setData({showDate: false});
							 | 
						|
								        },
							 | 
						|
								        formatDate(date) {
							 | 
						|
								            date = new Date(date);
							 | 
						|
								            return `${date.getFullYear()}-${date.getMonth() + 1 > 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1)}-${date.getDate() > 10 ? date.getDate() : '0' + date.getDate()}`;
							 | 
						|
								        },
							 | 
						|
								        onConfirmDate(event) {
							 | 
						|
								            console.log(event)
							 | 
						|
								            const date = event.detail;
							 | 
						|
								            this.setData({
							 | 
						|
								                showDate: false,
							 | 
						|
								                "form.timeLimit": `${this.formatDate(date)} 00:00:00`,
							 | 
						|
								            });
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        afterRead(event) {
							 | 
						|
								            const {file} = event.detail;
							 | 
						|
								            // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
							 | 
						|
								            wx.uploadFile({
							 | 
						|
								                url: `${config.BASEURL()}oss/file/uploadvariedfile`,
							 | 
						|
								                name: 'file',
							 | 
						|
								                header: {
							 | 
						|
								                    'Content-type': 'application/json;charset=UTF-8',
							 | 
						|
								                    'Authorization': wx.getStorageSync('token')
							 | 
						|
								                },
							 | 
						|
								                filePath: file.url,
							 | 
						|
								                success: (res) => {
							 | 
						|
								                    let data = JSON.parse(res.data)
							 | 
						|
								                    const fileList = this.data.fileList;
							 | 
						|
								                    fileList.push({...file, url: data.data.url});
							 | 
						|
								                    console.log(fileList)
							 | 
						|
								                    this.setData({fileList});
							 | 
						|
								                },
							 | 
						|
								            });
							 | 
						|
								        },
							 | 
						|
								        deleteFile(e) {
							 | 
						|
								            console.log(e)
							 | 
						|
								            let index = e.detail.index
							 | 
						|
								            let fileList = this.data.fileList
							 | 
						|
								            fileList.splice(index, 1)
							 | 
						|
								            this.setData({
							 | 
						|
								                fileList
							 | 
						|
								            })
							 | 
						|
								        },
							 | 
						|
								
							 | 
						|
								        sure() {
							 | 
						|
								            let params = {
							 | 
						|
								                ...this.data.form,
							 | 
						|
								                files: this.data.fileList,
							 | 
						|
								                icEventId: this.data.id,
							 | 
						|
								                status: "processing",
							 | 
						|
								                // timeLimit: this.data.value1 && this.data.value1.length ? this.data.value1[0] : ""
							 | 
						|
								            }
							 | 
						|
								            icEventOldReply(params).then(res => {
							 | 
						|
								                wx.showToast({
							 | 
						|
								                    icon: 'success',
							 | 
						|
								                    title: '操作成功'
							 | 
						|
								                })
							 | 
						|
								                this.close()
							 | 
						|
								            })
							 | 
						|
								            console.log(params)
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								});
							 | 
						|
								
							 |