diff --git a/src/views/modules/communityService/fuwujilu/addForm.vue b/src/views/modules/communityService/fuwujilu/addForm.vue index d935d34a..85d4d109 100644 --- a/src/views/modules/communityService/fuwujilu/addForm.vue +++ b/src/views/modules/communityService/fuwujilu/addForm.vue @@ -11,8 +11,8 @@ - + @@ -85,12 +85,12 @@ + v-model="formData.principalContact"> @@ -101,7 +101,7 @@ :picker-options="startPickerOptions" class="item_width_2" type="date" - value-format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" value="yyyy-MM-dd" placeholder="开始时间"> @@ -110,7 +110,7 @@ :picker-options="endPickerOptions" class="item_width_2 data-tag" type="date" - value-format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" value="yyyy-MM-dd" placeholder="结束时间"> @@ -196,7 +196,8 @@ - 已完成 + 点击上传
只能上传word、excel、pdf文件
+ class="el-upload__tip">支持图片、word、pdf
@@ -336,12 +337,12 @@ export default { keyWords: '', formData: { - serviceCategoryId: '',//服务分类id + serviceCategoryKey: '',//服务分类id serviceProjectId: '',//服务项目id serviceOrgId: '',//服务组织id serviceScope: [],// principalName: '',//经办人(责任人)姓名 - principalConcat: '',//经办人联系方式 + principalContact: '',//经办人联系方式 serviceTimeStart: '',//服务起始时间yyyy-MM-dd serviceTimeEnd: '',//服务截止时间yyyy-MM-dd remark: '',// @@ -354,13 +355,48 @@ export default { serviceGoal: '',// 服务目标 serviceEffect: '',// 服务效果 servicePeopleNumber: null,// 服务人数 - serviceStatus: '',// 服务状态。in_service服务中;completed:已完成 + serviceStatus: 'completed',// 服务状态。in_service服务中;completed:已完成 satisfaction: '',//满意度。不满意:bad、基本满意:good、非常满意:perfect longitude: '',// 经度 latitude: '',// 维度 address: '', attachmentList: [],// 附件列表 }, + formDataTemp: { + principalContact: "15111111111", + principalName: "31231", + remark: "4234234", + serviceCategoryKey: "01", + serviceOrgId: "1531105677127692289", + serviceProjectId: "1531514265581076482", + serviceScope: [ + { + objectId: "1479033225060757506", + objectName: "合肥路街道", + objectType: "street", + }, + { + objectId: "1514064686570147842", + objectName: "ss", + objectType: "street", + } + ], + serviceTimeEnd: "", + serviceTimeStart: "", + + feedback: { + address: "山东省青岛市市南区南京路73号", + latitude: 36.0722275, + longitude: 120.38945519, + satisfaction: "bad", + serviceEffect: "234234234", + serviceGoal: "234234", + servicePeopleNumber: 1, + serviceProjectId: "1531514265581076482", + serviceProjectName: "223", + serviceStatus: "completed", + } + }, projectList: [],//服务项目list orgList: [],//服务组织list @@ -382,22 +418,30 @@ export default { }, watch: { - // "formData.serviceTimeEnd": function (val) { - // if (val && val != '') { - // let arrayTemp = val.split(' ') - // this.formData.serviceTimeEnd = arrayTemp[0] - // } + "formData.serviceTimeEnd": function (val) { + if (val && val != '') { + let arrayTemp = val.split(' ') + this.formData.serviceTimeEnd = arrayTemp[0] + ' 23:59:59' + } - // }, + }, }, components: {}, async mounted () { this.startLoading() this.initMap() - this.$refs.ref_form.resetFields(); + if (this.formType === 'add') { + this.$refs.ref_form.resetFields(); + await this.loadScopeTree() + } + this.$refs.ref_form_feedback.resetFields(); - await this.loadScopeTree() + + this.endLoading() + + this.formData = JSON.parse(JSON.stringify(this.formDataTemp)); + this.feedbackFormData = { ...this.formData.feedback } }, @@ -408,6 +452,8 @@ export default { }, hancleClickCategray () { + this.formData.serviceProjectId = '' + this.formData.serviceOrgId = '' //获取服务项目 this.loadProjectList() //获取服务组织 @@ -421,8 +467,8 @@ export default { // 获取服务范围树 loadScopeTree () { - // const url = '/gov/org/isServiceProject/service/serviceScopeTree' - const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree' + const url = '/gov/org/icServiceProject/service/serviceScopeTree' + // const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree' let params = {} window.app.ajax.post( url, @@ -450,7 +496,7 @@ export default { selArray.forEach(element => { let obj = { - objectType: element.data.objectType, + objectType: element.data.objectType === 'grid' ? 'grid' : element.data.objectType === 'neighborhood' ? 'neighborhood' : 'agency', objectId: element.data.objectId, objectName: element.data.objectName, } @@ -461,17 +507,17 @@ export default { //加载组织 async loadProjectList () { - // const url = '/heart/icServiceProject/serviceProjectList' - const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/serviceProjectList' + const url = '/heart/icServiceProject/serviceProjectList' + // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/serviceProjectList' let params = { isPage: false, - serviceCategory: this.formData.serviceCategoryId, + serviceCategoryKey: this.formData.serviceCategoryKey, } const { data, code, msg } = await requestPost(url, params) if (code === 0) { - this.projectList = data.list + this.projectList = [...data.list] } else { this.$message.error(msg) } @@ -479,10 +525,10 @@ export default { //加载组织 async loadOrgList () { - // const url = '/heart/icServiceOrg/selectlist' - const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceOrg/selectlist' + const url = '/heart/icServiceOrg/selectlist' + // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceOrg/selectlist' let params = { - serviceType: this.formData.serviceCategoryId, + serviceType: this.formData.serviceCategoryKey, } @@ -497,6 +543,15 @@ export default { async handleComfirm () { + if (this.formType === 'add') { + this.handleAdd() + } else if (this.formType === 'feedback') { + this.handleFeedback() + } + }, + + async handleAdd () { + this.btnDisable = true setTimeout(() => { this.btnDisable = false @@ -531,10 +586,30 @@ export default { }, async addFuwu () { + if (this.showFeedback) { + this.feedbackFormData.attachmentList = [] + this.feedbackFormData.attachmentList = [...this.fileList] + this.formData.feedback = { ... this.feedbackFormData } + } else { + this.formData.feedback = null + } + + console.log(this.formData) - return false - // const url = '/heart/icServiceProject/service/initiate' - const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate' + // return false + const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //手机号码 + if (regPhone.test(this.formData.principalContact) === false) { + this.btnDisable = false + this.$message({ + type: 'warning', + message: '请输入正确的手机号码' + }) + return false; + } + + + const url = '/heart/icServiceProject/service/initiate' + // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate' let params = { ...this.formData @@ -550,17 +625,62 @@ export default { this.$message.error(msg) } }, + async handleFeedback () { + + this.btnDisable = true + setTimeout(() => { + this.btnDisable = false + }, 10000) + + this.$refs['ref_form_feedback'].validate((valid, messageObj) => { + if (!valid) { + app.util.validateRule(messageObj) + this.btnDisable = false + } else { + + this.addFeecback() + + } + + }) + + }, + + async addFeecback () { + + this.feedbackFormData.attachmentList = [] + this.feedbackFormData.attachmentList = [...this.fileList] + this.feedbackFormData.serviceRecordId = this.serviceRecordId + + console.log(this.feedbackFormData) + // return false + + const url = '/heart/icServiceProject/service/feedback' + // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate' + let params = { + + ...this.feedbackFormData + } + + const { data, code, msg } = await requestPost(url, params) + + if (code === 0) { + this.$message.success('发起成功') + this.resetData() + this.$emit('handleOk') + } else { + this.$message.error(msg) + } + }, beforeUpload (file) { const array = file.name.split('.') const extension = array[array.length - 1] - if (extension !== 'xls' - && extension !== 'xlsx' - && extension !== 'doc' - && extension !== 'docx' - && extension !== 'pdf') { - this.$message.error('只能上传word、excel、pdf文件!') + const formatarray = ['jpg', 'png', 'jpeg', 'bmp', 'mp4', 'wma', 'm4a', 'mp3', 'doc', 'docx', 'xls', 'xlsx', 'pdf'] + + if (formatarray.indexOf(extension) === -1) { + this.$message.error('只支持图片、word、pdf') return false } @@ -579,8 +699,28 @@ export default { const array = file.name.split('.') const fileType = array[array.length - 1] + const picArray = ['jpg', 'png', 'jpeg', 'bmp'] + const videoarray = ['mp4', 'wma', 'm4a'] + const docArray = ['doc', 'docx', 'xls', 'xlsx', 'pdf'] + const mp3Array = ['mp3'] + + if (picArray.indexOf(fileType) > -1) { + file.attachmentFormat = 'image' + } else if (videoarray.indexOf(fileType) > -1) { + file.attachmentFormat = 'video' + } else if (docArray.indexOf(fileType) > -1) { + file.attachmentFormat = 'doc' + } else if (mp3Array.indexOf(fileType) > -1) { + file.attachmentFormat = 'voice' + } + file.url = res.data.url file.type = fileType + + file.attachmentName = file.name + file.attachmentType = file.type + file.attachmentUrl = file.url + this.fileList.push(file) console.log(this.fileList) } else this.$message.error(res.msg) @@ -719,12 +859,12 @@ export default { resetData () { this.formData = { - serviceCategoryId: '',//服务分类id + serviceCategoryKey: '',//服务分类id serviceProjectId: '',//服务项目id serviceOrgId: '',//服务组织id serviceScope: [],// principalName: '',//经办人(责任人)姓名 - principalConcat: '',//经办人联系方式 + principalContact: '',//经办人联系方式 serviceTimeStart: '',//服务起始时间yyyy-MM-dd serviceTimeEnd: '',//服务截止时间yyyy-MM-dd remark: '',// @@ -737,7 +877,7 @@ export default { serviceGoal: '',// 服务目标 serviceEffect: '',// 服务效果 servicePeopleNumber: null,// 服务人数 - serviceStatus: '',// 服务状态。in_service服务中;completed:已完成 + serviceStatus: 'completed',// 服务状态。in_service服务中;completed:已完成 satisfaction: '',//满意度。不满意:bad、基本满意:good、非常满意:perfect longitude: '',// 经度 latitude: '',// 维度 @@ -765,7 +905,7 @@ export default { dataRule () { return { - serviceCategoryId: [ + serviceCategoryKey: [ { required: true, message: '服务类别不能为空', trigger: 'blur' }, ], serviceProjectId: [ diff --git a/src/views/modules/communityService/fuwujilu/detailForm.vue b/src/views/modules/communityService/fuwujilu/detailForm.vue index 982eb426..6d4f002b 100644 --- a/src/views/modules/communityService/fuwujilu/detailForm.vue +++ b/src/views/modules/communityService/fuwujilu/detailForm.vue @@ -11,8 +11,10 @@ - + {{formData.serviceCategoryName}} + + - {{formData.serviceProjectName}} + - {{formData.serviceOrgName}} + @@ -65,14 +69,18 @@ prop="serviceScope" label-width="150px" style="display: block"> - +
{{item.objectName}}
+ + + v-model="formData.principalContact"> @@ -128,14 +136,6 @@ placeholder="请输入备注,不超过500字" v-model="formData.remark"> - - - @@ -185,11 +185,10 @@ export default { } return { - formType: 'add', //表单操作类型 add新增,edit编辑,detail详情,feedback反馈 + btnDisable: false, - unitId: '', keyWords: '', formData: { unitName: '', @@ -212,7 +211,7 @@ export default { disabledDate: startDisabledDate }, - categrayArray: [], + projectList: [], } @@ -220,75 +219,27 @@ export default { components: {}, mounted () { if (this.serviceRecordId) {//详情 - + this.loadInfo() } - this.initMap() + // this.initMap() console.log('mounted') }, - activated () { - console.log('activated') - }, - - methods: { - - async initForm (type, unitId) { - this.startLoading() - this.$refs.ref_form.resetFields(); - - //获取服务事项 - await this.loadService() - this.formType = type - if (unitId) { - this.unitId = unitId - this.formData.id = unitId - await this.loadFormData() - } else { - map.setCenter(new TMap.LatLng(36.0722275, 120.38945519)) - this.setMarker(36.0722275, 120.38945519) - } - - this.endLoading() - - }, - - //获取服务事项下拉框 - async loadService () { - const url = "/heart/serviceitem/dict-list" - let params = { - type: 'usable' - // parentCategoryCode: '1010' - } - const { data, code, msg } = await requestPost(url, params) - - if (code === 0) { - this.serviceList = data - - } else { - this.$message.error(msg) - } + methods: { - }, //加载组织 - async loadFormData () { - const url = '/heart/icpartyunit/detail' - // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/detail' - let params = { - id: this.unitId - } + async loadInfo () { + const url = `/heart/icServiceProject/service/detail/${this.serviceRecordId}` + // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/detail' + this.serviceRecordId + let params = {} const { data, code, msg } = await requestPost(url, params) if (code === 0) { - if (!data.serviceMatterList || !Array.isArray(data.serviceMatterList)) { - data.serviceMatterList = [] - } - this.formData = { ...data } - map.setCenter(new TMap.LatLng(this.formData.latitude, this.formData.longitude)) - this.setMarker(this.formData.latitude, this.formData.longitude) + this.formData.serviceRecordId = this.serviceRecordId } else { this.$message.error(msg) } @@ -307,16 +258,16 @@ export default { app.util.validateRule(messageObj) this.btnDisable = false } else { - this.addUnit() + this.editFuwu() } }) }, - async addUnit () { + async editFuwu () { const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //手机号码 - if (regPhone.test(this.formData.contactMobile) === false) { + if (regPhone.test(this.formData.principalContact) === false) { this.btnDisable = false this.$message({ type: 'warning', @@ -325,11 +276,9 @@ export default { return false; } - let url = '/heart/icpartyunit/save' - // let url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/save" - // if (this.formType === 'edit') { - // this.formData.id = this.unitId - // } + let url = '/heart/icServiceProject/service/update' + // let url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/update" + const { data, code, msg } = await requestPost(url, this.formData) @@ -339,8 +288,8 @@ export default { message: '操作成功' }) this.resetData() - this.$emit('dialogOk') - this.btnDisable = false + + this.$emit('handleOk') } else { this.btnDisable = false this.$message.error(msg) @@ -467,19 +416,17 @@ export default { resetData () { - this.unitId = '' - this.keyWords = '' this.formData = { - unitName: '', - serviceMatterList: [], - type: '', - contact: '', - contactMobile: '', - memberCount: 0, - remark: '', //备注【最大500字】 - address: '', //详细地址 - longitude: '', //经度 - latitude: '' //纬度 + serviceCategoryKey: '',//服务分类id + serviceProjectId: '',//服务项目id + serviceOrgId: '',//服务组织id + serviceScope: [],// + principalName: '',//经办人(责任人)姓名 + principalContact: '',//经办人联系方式 + serviceTimeStart: '',//服务起始时间yyyy-MM-dd + serviceTimeEnd: '',//服务截止时间yyyy-MM-dd + remark: '',// + } }, // 开启加载动画 @@ -502,44 +449,39 @@ export default { dataRule () { return { - unitName: [ - { required: true, message: '单位名称不能为空', trigger: 'blur' }, + serviceCategoryKey: [ + { required: true, message: '服务类别不能为空', trigger: 'blur' }, ], - type: [ - { required: true, message: '分类不能为空', trigger: 'blur' } + serviceProjectId: [ + { required: true, message: '服务项目不能为空', trigger: 'blur' } ], - contact: [ - { required: true, message: '联系人不能为空', trigger: 'blur' } - ], - contactMobile: [ - { required: true, message: '联系电话不能为空', trigger: 'blur' } + serviceOrgId: [ + { required: true, message: '服务组织不能为空', trigger: 'blur' } ], - memberCount: [ - { required: true, message: '在职党员数不能为空', trigger: 'blur' } + serviceTimeStart: [ + { required: true, message: '服务时间不能为空', trigger: 'blur' } ], - address: [ - { required: true, message: '详细地址不能为空', trigger: 'blur' } + serviceScope: [ + { required: true, message: '服务范围不能为空', trigger: 'blur' } ], - longitude: [ - { required: true, message: '坐标不能为空', trigger: 'blur' } - ] + } }, - }, props: { serviceRecordId: { type: String, - required: '' + required: true }, - formType: { + formType: {//表单操作类型 add新增,edit编辑,detail详情,feedback反馈 type: String, - required: '' + required: true }, categrayArray: { type: Array, + required: true, default () { return [] } @@ -547,18 +489,8 @@ export default { } } - + diff --git a/src/views/modules/communityService/fuwujilu/fuwuList.vue b/src/views/modules/communityService/fuwujilu/fuwuList.vue index c96b532f..156e75a5 100644 --- a/src/views/modules/communityService/fuwujilu/fuwuList.vue +++ b/src/views/modules/communityService/fuwujilu/fuwuList.vue @@ -9,8 +9,8 @@
- + @@ -59,7 +59,7 @@ class="item_width_2 data-tag" size="small" type="date" - value-format="yyyy-MM-dd" + value-format="yyyy-MM-dd HH:mm:ss" value="yyyy-MM-dd" placeholder="结束时间"> @@ -133,6 +133,7 @@ @@ -143,17 +144,17 @@ :show-overflow-tooltip="true"> - -