diff --git a/src/views/modules/communityService/fuwujilu/addForm.vue b/src/views/modules/communityService/fuwujilu/addForm.vue index f1a4c24e..45bb12bc 100644 --- a/src/views/modules/communityService/fuwujilu/addForm.vue +++ b/src/views/modules/communityService/fuwujilu/addForm.vue @@ -9,12 +9,12 @@ :rules="dataRule" class="div_form"> + placeholder="请输入服务名称" + v-model="formData.serviceName"> @@ -22,7 +22,7 @@ prop="serviceOrgId" label-width="150px" style="display: block"> - - - + + + + + + + - 已完成 @@ -188,9 +205,10 @@ - @@ -315,8 +333,11 @@ export default { keyWords: '', formData: { - - serviceScope: [],// + serviceName: '',//服务名称 + serviceOrgType: '',//服务组织类型 社区自组织:community_org, 志愿者:ic_user_volunteer, 联建单位:party_unit + serviceOrgId: '',//服务组织Id + objList: [],// + policyId: '', principalName: '',//经办人(责任人)姓名 principalContact: '',//经办人联系方式 serviceTimeStart: '',//服务起始时间yyyy-MM-dd @@ -326,8 +347,6 @@ export default { }, feedbackFormData: { - - serviceGoal: '',// 服务目标 serviceEffect: '',// 服务效果 servicePeopleNumber: null,// 服务人数 @@ -336,7 +355,7 @@ export default { longitude: '',// 经度 latitude: '',// 维度 address: '', - attachmentList: [],// 附件列表 + fileList: [],// 附件列表 }, @@ -348,26 +367,9 @@ export default { }, showFeedback: true, - serviceOptions: [ - { - label: "志愿者", - value: "volunteer", - }, - // { - // label: '社会组织', - // value: 'social_org' - // }, - { - label: "社区自组织", - value: "community_org", - }, - { - label: "区域党建单位", - value: "party_unit", - }, - ], + serviceOptions: [], serviceOptiondList: [], - + policyList: [], fileList: [], uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile', @@ -389,6 +391,7 @@ export default { this.startLoading() this.initMap() this.getDictOptions(); + this.getPolicyList(); this.$refs.ref_form_feedback.resetFields(); if (this.formType === 'add') { this.$refs.ref_form.resetFields(); @@ -404,9 +407,20 @@ export default { methods: { - async getDictOptions () { + async getPolicyList () { + const url = '/heart/policy/policyListSelect' + + let params = {} + const { data, code, msg } = await requestPost(url, params) + if (code === 0) { + this.policyList = data + } else { + this.$message.error(msg) + } + }, + async getDictOptions () { this.$http .post("/sys/dict/data/dictlist", { dictType: "user_demand_service_type", @@ -483,7 +497,7 @@ export default { handleChangeScope (value) { - this.formData.serviceScope = [] + this.formData.objList = [] let selArray = this.$refs["myCascader"].getCheckedNodes() selArray.forEach(element => { @@ -492,7 +506,7 @@ export default { objectId: element.data.objectId, objectName: element.data.objectName, } - this.formData.serviceScope.push(obj) + this.formData.objList.push(obj) }); }, @@ -545,8 +559,8 @@ export default { async addFuwu () { if (this.showFeedback) { - this.feedbackFormData.attachmentList = [] - this.feedbackFormData.attachmentList = [...this.fileList] + this.feedbackFormData.fileList = [] + this.feedbackFormData.fileList = [...this.fileList] this.formData.feedback = { ... this.feedbackFormData } } else { this.formData.feedback = null @@ -566,7 +580,7 @@ export default { } - const url = '/heart/icServiceProject/service/initiate' + const url = '/heart/icServiceRecordV2/add' // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate' let params = { @@ -583,6 +597,7 @@ export default { this.$message.error(msg) } }, + async handleFeedback () { this.btnDisable = true @@ -606,15 +621,15 @@ export default { async addFeecback () { - this.feedbackFormData.attachmentList = [] - this.feedbackFormData.attachmentList = [...this.fileList] + this.feedbackFormData.fileList = [] + this.feedbackFormData.fileList = [...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' + const url = '/heart/icServiceFeedbackV2/add' + let params = { ...this.feedbackFormData @@ -623,7 +638,7 @@ export default { const { data, code, msg } = await requestPost(url, params) if (code === 0) { - this.$message.success('发起成功') + this.$message.success('反馈成功') this.resetData() this.$emit('handleOk') } else { @@ -663,21 +678,21 @@ export default { const mp3Array = ['mp3'] if (picArray.indexOf(fileType) > -1) { - file.attachmentFormat = 'image' + file.format = 'image' } else if (videoarray.indexOf(fileType) > -1) { - file.attachmentFormat = 'video' + file.format = 'video' } else if (docArray.indexOf(fileType) > -1) { - file.attachmentFormat = 'doc' + file.format = 'doc' } else if (mp3Array.indexOf(fileType) > -1) { - file.attachmentFormat = 'voice' + file.format = 'voice' } file.url = res.data.url file.type = fileType - file.attachmentName = file.name - file.attachmentType = file.type - file.attachmentUrl = file.url + file.name = file.name + file.type = file.type + file.url = file.url this.fileList.push(file) console.log(this.fileList) @@ -818,7 +833,7 @@ export default { resetData () { this.formData = { - serviceScope: [],// + objList: [],// principalName: '',//经办人(责任人)姓名 principalContact: '',//经办人联系方式 serviceTimeStart: '',//服务起始时间yyyy-MM-dd @@ -838,7 +853,7 @@ export default { longitude: '',// 经度 latitude: '',// 维度 address: '', - attachmentList: [],// 附件列表 + fileList: [],// 附件列表 } }, // 开启加载动画 @@ -862,11 +877,18 @@ export default { return { + serviceName: [ + { required: true, message: '服务名称不能为空', trigger: 'change' } + ], + serviceOrgId: [ + { required: true, message: '服务组织不能为空', trigger: 'change' } + ], + serviceTimeStart: [ - { required: true, message: '服务时间不能为空', trigger: 'blur' } + { required: true, message: '服务时间不能为空', trigger: 'change' } ], - serviceScope: [ - { required: true, message: '服务范围不能为空', trigger: 'blur' } + objList: [ + { required: true, message: '服务范围不能为空', trigger: 'change' } ], } diff --git a/src/views/modules/communityService/fuwujilu/detailForm.vue b/src/views/modules/communityService/fuwujilu/detailForm.vue index 6125199c..652b399a 100644 --- a/src/views/modules/communityService/fuwujilu/detailForm.vue +++ b/src/views/modules/communityService/fuwujilu/detailForm.vue @@ -9,29 +9,11 @@ :rules="dataRule" class="div_form"> - - {{formData.serviceCategoryName}} - - - - - - {{formData.serviceProjectName}} + {{formData.serviceName}} + + + + + + + @@ -97,7 +95,7 @@ label-width="150px" style="display: block"> @@ -178,7 +176,7 @@ style="display: block" prop="servicePeopleNumber" label-width="150px"> - 已完成 - 无附件 @@ -326,22 +326,11 @@ export default { btnDisable: false, keyWords: '', - formData: { - unitName: '', - serviceMatterList: [], - type: '', - contact: '', - contactMobile: '', - memberCount: 0, - remark: '', //备注【最大500字】 - address: '', //详细地址 - longitude: 36.0722275, //经度 - latitude: 120.38945519 //纬度 - }, + formData: {}, feedbackFormData: { serviceProjectId: '',// 服务项目id - serviceProjectName: '', + serviceName: '', serviceGoal: '',// 服务目标 serviceEffect: '',// 服务效果 servicePeopleNumber: null,// 服务人数 @@ -350,7 +339,7 @@ export default { longitude: '',// 经度 latitude: '',// 维度 address: '', - attachmentList: [],// 附件列表 + fileList: [],// 附件列表 }, serviceList: [],//服务list @@ -360,7 +349,7 @@ export default { startPickerOptions: { disabledDate: startDisabledDate }, - + policyList: [], projectList: [], fileList: [], uploadUlr: window.SITE_CONFIG['apiURL'] + '/oss/file/uploadvariedfile', @@ -368,6 +357,7 @@ export default { }, components: {}, mounted () { + this.getPolicyList() if (this.serviceRecordId) {//详情 this.loadInfo() @@ -379,27 +369,41 @@ export default { methods: { + async getPolicyList () { + const url = '/heart/policy/policyListSelect' + let params = {} + + const { data, code, msg } = await requestPost(url, params) + + if (code === 0) { + this.policyList = data + } else { + this.$message.error(msg) + } + }, //加载组织 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 url = '/heart/icServiceRecordV2/detail' + + let params = { + serviceRecordId: this.serviceRecordId + } const { data, code, msg } = await requestPost(url, params) if (code === 0) { this.formData = { ...data } this.formData.serviceRecordId = this.serviceRecordId - this.feedbackFormData = { ...data.feedBack } - this.feedbackFormData.servicePeopleNumber = this.formData.servicePeopleNumber + this.feedbackFormData = { ...data.feedback } + this.fileList = [] - if (data.feedBack.attachmentList && data.feedBack.attachmentList.length > 0) { - data.feedBack.attachmentList.forEach(element => { + if (data.feedback.fileList && data.feedback.fileList.length > 0) { + data.feedback.fileList.forEach(element => { let obj = { - name: element.attachmentName, - format: element.attachmentFormat, - url: element.attachmentUrl, + name: element.name, + format: element.format, + url: element.url, } this.fileList.push(obj) }); @@ -440,7 +444,7 @@ export default { return false; } - let url = '/heart/icServiceProject/service/update' + let url = '/heart/icServiceRecordV2/edit' // let url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/update" @@ -593,18 +597,7 @@ export default { resetData () { - this.formData = { - serviceCategoryKey: '',//服务分类id - serviceProjectId: '',//服务项目id - serviceOrgId: '',//服务组织id - serviceScope: [],// - principalName: '',//经办人(责任人)姓名 - principalContact: '',//经办人联系方式 - serviceTimeStart: '',//服务起始时间yyyy-MM-dd - serviceTimeEnd: '',//服务截止时间yyyy-MM-dd - remark: '',// - - } + this.formData = {} }, // 开启加载动画 startLoading () { @@ -626,22 +619,11 @@ export default { dataRule () { return { - serviceCategoryKey: [ - { required: true, message: '服务类别不能为空', trigger: 'blur' }, - ], - serviceProjectId: [ - { required: true, message: '服务项目不能为空', trigger: 'blur' } - ], - serviceOrgId: [ - { required: true, message: '服务组织不能为空', trigger: 'blur' } - ], serviceTimeStart: [ { required: true, message: '服务时间不能为空', trigger: 'blur' } ], - serviceScope: [ - { required: true, message: '服务范围不能为空', trigger: 'blur' } - ], + } }, @@ -652,17 +634,15 @@ export default { type: String, required: true }, - formType: {//表单操作类型 add新增,edit编辑,detail详情,feedback反馈 + serviceOrgName: { type: String, required: true }, - categrayArray: { - type: Array, - required: true, - default () { - return [] - } + formType: {//表单操作类型 add新增,edit编辑,detail详情,feedback反馈 + type: String, + required: true }, + satisfyArray: { type: Array, default () { diff --git a/src/views/modules/communityService/fuwujilu/fuwuList.vue b/src/views/modules/communityService/fuwujilu/fuwuList.vue index 052c7e5c..b5f64cdc 100644 --- a/src/views/modules/communityService/fuwujilu/fuwuList.vue +++ b/src/views/modules/communityService/fuwujilu/fuwuList.vue @@ -8,23 +8,9 @@ :label-width="'80px'">
- - - - - - - - + - - + prop="serviceOrgType"> + + + + + - + + + + @@ -59,7 +62,7 @@ class="item_width_2 data-tag" size="small" type="date" - value-format="yyyy-MM-dd HH:mm:ss" + value-format="yyyy-MM-dd" value="yyyy-MM-dd" placeholder="结束时间"> @@ -132,8 +135,8 @@ align="center" width="50" /> - @@ -227,11 +230,10 @@ @closed="showAdd = false"> @@ -246,8 +248,8 @@ @closed="showDetail = false"> @@ -293,7 +295,7 @@ export default { agencyId: '', tableData: [], - categrayArray: [], + statusArray: [ { value: "in_service", @@ -321,9 +323,10 @@ export default { ], formData: { - serviceCategoryKey: '',//服务类别id - serviceProjectName: '',//项目名称 - serviceOrgName: '',//服务组织名称 + + serviceName: '',//项目名称 + serviceOrgType: '',//服务组织类型 + serviceOrgId: '',//服务组织Id serviceTimeStart: '',//服务开始时间yyyy-MM-dd serviceTimeEnd: '',//服务结束时间yyyy-MM-dd serviceStatus: '',//服务状态。in_service服务中;completed:已完成 @@ -340,7 +343,8 @@ export default { disabledDate: startDisabledDate }, serviceRecordId: '', - serviceProjectName: '', + serviceName: '', + serviceOrgName: '', showAdd: false, showDetail: false, @@ -349,6 +353,10 @@ export default { addDiaTitle: '发起服务', detailDiaTitle: '服务详情', + serviceOptions: [], + serviceOptiondList: [], + + }; }, computed: { @@ -360,19 +368,19 @@ export default { ...mapGetters(["clientHeight", "iframeHeight"]), }, watch: { - "formData.serviceTimeEnd": function (val) { - if (val && val != '') { - let arrayTemp = val.split(' ') - this.formData.serviceTimeEnd = arrayTemp[0] + ' 23:59:59' - } + // "formData.serviceTimeEnd": function (val) { + // if (val && val != '') { + // let arrayTemp = val.split(' ') + // this.formData.serviceTimeEnd = arrayTemp[0] + ' 23:59:59' + // } - }, + // }, }, mounted () { console.log(this.$store.state) this.user = this.$store.state.user this.agencyId = this.user.agencyId - this.getCategrayList() + this.getDictOptions() this.getTableData(); }, methods: { @@ -382,23 +390,58 @@ export default { this.pageNo = 1; this.getTableData(); }, - // 字典 - async getCategrayList () { + // 获取服务组织 + async getDictOptions () { const url = "/sys/dict/data/dictlist" let params = { - dictType: 'ic_service_type' + dictType: 'user_demand_service_type' } const { data, code, msg } = await requestPost(url, params) if (code === 0) { - this.categrayArray = data + this.serviceOptions = data; } else { this.$message.error(msg) } }, + handleServiceChange (type, val) { + this.formData.serviceOrgId = '' + if (val === "social_org") { + if (type === "add") { + this.getServiceuserList(val, "add_demand"); + } else { + this.getServiceuserList(val, "query_demand"); + } + } else { + this.getServiceuserList(val, ""); + } + }, + + async getServiceuserList (serviceType, query) { + if (!serviceType) return false; + + const params = { + serviceName: "", + serviceType: serviceType, + queryPurpose: query, + }; + await this.$http + .post("/heart/userdemand/servicelist", params) + .then(({ data: res }) => { + if (res.code !== 0) { + return this.$message.error(res.msg); + } else { + this.serviceOptiondList = res.data + } + }) + .catch(() => { + return this.$message.error("网络错误"); + }); + }, + async handleAdd () { this.addDiaTitle = '发起服务' @@ -408,6 +451,7 @@ export default { async handleDetail (row) { this.serviceRecordId = row.serviceRecordId + this.serviceOrgName = row.serviceOrgName this.formType = 'detail' this.showDetail = true @@ -424,7 +468,7 @@ export default { async handleFeedback (row) { this.serviceRecordId = row.serviceRecordId - this.serviceProjectName = row.serviceProjectName + this.serviceName = row.serviceName this.addDiaTitle = '服务反馈' this.formType = 'feedback' this.showAdd = true; @@ -470,16 +514,16 @@ export default { }); - - }, async cancelFuwu () { - const url = `/heart/icServiceProject/service/cancel/${this.serviceRecordId}`; - + const url = '/heart/icServiceRecordV2/cancel'; + let params = { + serviceRecordId: this.serviceRecordId + } - const { data, code, msg } = await requestPost(url, {}); + const { data, code, msg } = await requestPost(url, params); if (code === 0) { this.$message.success("取消成功!"); @@ -491,8 +535,8 @@ export default { async getTableData () { this.tableLoading = true - const url = "/heart/icServiceProject/service/recordList"; - // const url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/recordList"; + const url = "/heart/icServiceRecordV2/list"; + const { pageSize, pageNo, formData } = this; const { data, code, msg } = await requestPost(url, { pageSize, @@ -505,23 +549,9 @@ export default { this.total = data.total || 0; this.tableData = data.list - ? data.list.map((item) => { - return item; - }) - : []; - - this.tableData.forEach(item => { - if (item.operationType === '2') { - item.operationTypeShow = '已转需求' - } - if (item.operationType === '1') { - item.operationTypeShow = '已立项' - } - if (item.operationType === '0') { - item.operationTypeShow = '已回复' - } - }); + + } else { this.$message.error(msg); } @@ -576,13 +606,13 @@ export default { resetSearch () { this.formData = { - serviceCategoryKey: '', - serviceProjectName: '', - serviceOrgName: '', - serviceTimeStart: '', - serviceTimeEnd: '', - serviceStatus: '', - satisfaction: '' + serviceName: '',//项目名称 + serviceOrgType: '',//服务组织类型 + serviceOrgId: '',//服务组织Id + serviceTimeStart: '',//服务开始时间yyyy-MM-dd + serviceTimeEnd: '',//服务结束时间yyyy-MM-dd + serviceStatus: '',//服务状态。in_service服务中;completed:已完成 + satisfaction: '',//满意度.不满意:bad、基本满意:good、非常满意:perfect } diff --git a/src/views/modules/communityService/policy/personListItem.vue b/src/views/modules/communityService/policy/personListItem.vue index 4a277e8e..e7c093cc 100644 --- a/src/views/modules/communityService/policy/personListItem.vue +++ b/src/views/modules/communityService/policy/personListItem.vue @@ -280,7 +280,8 @@ export default { pageSize: this.pageSize, pageNo: this.pageNo, ...this.formData, - ruleId: this.ruleId + ruleId: this.ruleId, + ruleList: this.ruleList } const { data, code, msg } = await requestPost(url, params) @@ -518,6 +519,12 @@ export default { type: String, required: '' }, + ruleList: { + type: Array, + default () { + return [] + } + }, } } diff --git a/src/views/modules/communityService/policy/policyList.vue b/src/views/modules/communityService/policy/policyList.vue index ed89fb26..8f3d2940 100644 --- a/src/views/modules/communityService/policy/policyList.vue +++ b/src/views/modules/communityService/policy/policyList.vue @@ -168,6 +168,7 @@ :close-on-click-modal="false" :close-on-press-escape="false" :title="addDiaTitle" + :modal-append-to-body="false" width="1050px" top="5vh" class="dialog-h" diff --git a/src/views/modules/communityService/policy/rule.vue b/src/views/modules/communityService/policy/rule.vue index a0499aae..50444635 100644 --- a/src/views/modules/communityService/policy/rule.vue +++ b/src/views/modules/communityService/policy/rule.vue @@ -12,6 +12,7 @@ :class="['tab-title',{'tab-title-sel':staticSel}]">统计信息 预览
+ + + + + + @@ -305,7 +323,7 @@ import { mapGetters } from 'vuex' import { Loading } from 'element-ui' // 引入Loading服务 import { requestPost } from '@/js/dai/request' - +import personListItem from './personListItem' let loading // 加载动画 @@ -386,13 +404,16 @@ export default { ], okflag: false, + showPersonList: false, + ruleList: [] + } }, watch: { }, - components: {}, + components: { personListItem }, async mounted () { this.loadPersonGroup() this.loadHouseItem() @@ -570,6 +591,22 @@ export default { return message }, + handlePreview () { + this.ruleList = {} + this.ruleList = { + resiRuleList: this.resiRuleList, + houseRuleList: this.houseRuleList, + statRuleList: this.statRuleList, + } + + this.showPersonList = true + }, + + handleClose () { + this.showPersonList = false + + }, + clickTab (type) { if (type === 'person') { this.personSel = true