Browse Source

温暖找人、技能找人、岗位找人,增加服务状态修改功能;

feature
luyan 2 years ago
parent
commit
a03438ab70
  1. 4
      src/views/modules/communityService/fuwuzhaoren/addForm.vue
  2. 357
      src/views/modules/communityService/gangweizhaoren/addForm.vue
  3. 359
      src/views/modules/communityService/jinengzhaoren/addForm.vue
  4. 359
      src/views/modules/communityService/wennuanzhaoren/addForm.vue

4
src/views/modules/communityService/fuwuzhaoren/addForm.vue

@ -226,7 +226,7 @@ export default {
checkStrictly: true, checkStrictly: true,
emitPath: false, emitPath: false,
}, },
serviceStatusOptions: [{ 'label': '进行中', 'value': 'in_service' }, { 'label': '已完成', 'value': 'completed' }, { 'label': '取消', 'value': 'cancel' }], // 退 serviceStatusOptions: [{ 'label': '进行中', 'value': 'in_service' }, { 'label': '已完成', 'value': 'completed' }, { 'label': '取消', 'value': 'cancel' }],
keyWords: "", keyWords: "",
formData: { formData: {
categoryCode: [], categoryCode: [],
@ -787,8 +787,6 @@ export default {
feedback: this.formData.feedback, feedback: this.formData.feedback,
serviceRecordId: this.serviceRecordId, serviceRecordId: this.serviceRecordId,
}; };
console.log(params);
console.log(this.formType);
let url = ""; let url = "";
if (this.formType != "edit") { if (this.formType != "edit") {
url = "/governance/icServiceRecordV2/searchAdd"; url = "/governance/icServiceRecordV2/searchAdd";

357
src/views/modules/communityService/gangweizhaoren/addForm.vue

@ -1,26 +1,12 @@
<template> <template>
<div> <div>
<div <div class="dialog-h-content scroll-h" :class="{ 'visiual-form': source === 'visiual' }">
class="dialog-h-content scroll-h" <el-form v-if="formType === 'add' || formType === 'edit'" ref="ref_form" :inline="true" :model="formData"
:class="{ 'visiual-form': source === 'visiual' }" :rules="dataRule" class="div_form">
>
<el-form
v-if="formType === 'add' || formType === 'edit'"
ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
class="div_form"
>
<el-form-item label="需求类型" prop="categoryCode" label-width="150px"> <el-form-item label="需求类型" prop="categoryCode" label-width="150px">
<el-cascader <el-cascader v-model="formData.categoryCode" :options="demandOptions"
v-model="formData.categoryCode" :props="{ label: 'categoryName', value: 'categoryCode', children: 'childCateList' }" clearable
:options="demandOptions" size="small" class="u-item-width-normal"></el-cascader>
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item> </el-form-item>
<!-- <el-form-item label="政策依据" <!-- <el-form-item label="政策依据"
prop="policyId" prop="policyId"
@ -38,54 +24,21 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item <el-form-item label="服务事项" prop="serviceName" label-width="150px"
label="服务事项" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="serviceName" <el-input class="item_width_1" placeholder="请输入服务事项" v-model="formData.serviceName">
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入服务事项"
v-model="formData.serviceName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务内容" prop="remark" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
label="服务内容" style="display: block">
prop="remark" <el-input class="item_width_1" type="textarea" maxlength="1000" show-word-limit :rows="3"
label-width="150px" placeholder="请输入备注,不超过1000字" v-model="formData.remark"></el-input>
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过1000字"
v-model="formData.remark"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="查找享受服务人员" prop="resiSearchTagId" :class="{ 'form-item': source === 'visiual' }"
label="查找享受服务人员" label-width="150px" style="display: block">
prop="resiSearchTagId" <input type="text" v-model="formData.resiSearchTagId" v-show="false" />
:class="{ 'form-item': source === 'visiual' }" <template style="margin-right: 10px" v-if="formData.resiSearchTagName">
label-width="150px"
style="display: block"
>
<input
type="text"
v-model="formData.resiSearchTagId"
v-show="false"
/>
<template
style="margin-right: 10px"
v-if="formData.resiSearchTagName"
>
<el-tag @close="handleCloseTag" closable style="margin-right: 10px"> <el-tag @close="handleCloseTag" closable style="margin-right: 10px">
{{ formData.resiSearchTagName }} {{ formData.resiSearchTagName }}
</el-tag> </el-tag>
@ -95,143 +48,66 @@
<span> <i class="el-icon-plus"></i> 按标签查找 </span> <span> <i class="el-icon-plus"></i> 按标签查找 </span>
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务组织" prop="serviceOrgId" label-width="150px"
label="服务组织" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="serviceOrgId" <el-select v-model="formData.serviceOrgType" class="input-width-small" placeholder="请选择" clearable
label-width="150px" @change="handleServiceChange('add', $event)">
:class="{ 'form-item': source === 'visiual' }" <el-option v-for="item in serviceOptions" :key="item.value" :label="item.label" :value="item.value">
style="display: block"
>
<el-select
v-model="formData.serviceOrgType"
class="input-width-small"
placeholder="请选择"
clearable
@change="handleServiceChange('add', $event)"
>
<el-option
v-for="item in serviceOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
- -
<el-select <el-select v-model="formData.serviceOrgId" class="input-width-middle" filterable placeholder="请选择"
v-model="formData.serviceOrgId" clearable>
class="input-width-middle" <el-option v-for="item in serviceOptiondList" :key="item.id" :label="item.label" :value="item.id">
filterable
placeholder="请选择"
clearable
>
<el-option
v-for="item in serviceOptiondList"
:key="item.id"
:label="item.label"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item prop="noticeApproches" label="自动通知服务组织" label-width="150px" style="display: block">
prop="noticeApproches"
label="自动通知服务组织"
label-width="150px"
style="display: block"
>
<el-checkbox-group v-model="formData.noticeApproches"> <el-checkbox-group v-model="formData.noticeApproches">
<el-checkbox label="sms" value="sms">短信通知</el-checkbox> <el-checkbox label="sms" value="sms">短信通知</el-checkbox>
<el-checkbox label="wx_official_account" value="wx_official_account">微信公众号消息通知</el-checkbox> <el-checkbox label="wx_official_account" value="wx_official_account">微信公众号消息通知</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务范围" prop="gridIdList" label-width="150px"
label="服务范围" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="gridIdList" <el-cascader class="item_width_1" ref="myCascader" v-model="scopeIdArray" :key="iscascaderShow"
label-width="150px" :options="casOptions" :props="optionProps" :show-all-levels="false" collapse-tags
:class="{ 'form-item': source === 'visiual' }" @change="handleChangeScope"></el-cascader>
style="display: block"
>
<el-cascader
class="item_width_1"
ref="myCascader"
v-model="scopeIdArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
collapse-tags
@change="handleChangeScope"
></el-cascader>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务时间" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
label="服务时间" prop="serviceTimeStart">
label-width="150px" <el-date-picker v-model="formData.serviceTimeStart" :picker-options="startPickerOptions"
:class="{ 'form-item': source === 'visiual' }" class="item_width_2" style="width: 220px" type="date" value-format="yyyy-MM-dd HH:mm:ss"
prop="serviceTimeStart" value="yyyy-MM-dd" placeholder="开始时间">
>
<el-date-picker
v-model="formData.serviceTimeStart"
:picker-options="startPickerOptions"
class="item_width_2"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="开始时间"
>
</el-date-picker> </el-date-picker>
<span class="u-data-tag"></span> <span class="u-data-tag"></span>
<el-date-picker <el-date-picker v-model="formData.serviceTimeEnd" :picker-options="endPickerOptions"
v-model="formData.serviceTimeEnd" class="item_width_2 u-data-tag" style="width: 220px" type="date" value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="endPickerOptions" value="yyyy-MM-dd" placeholder="结束时间">
class="item_width_2 u-data-tag"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="结束时间"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="经办人" prop="principalName" :class="{ 'form-item': source === 'visiual' }"
label="经办人" label-width="150px" style="display: block">
prop="principalName" <el-input class="item_width_1" placeholder="请输入联系人姓名" v-model="formData.principalName">
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人姓名"
v-model="formData.principalName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="联系方式" prop="principalContact" :class="{ 'form-item': source === 'visiual' }"
label="联系方式" label-width="150px" style="display: block">
prop="principalContact" <el-input class="item_width_1" placeholder="请输入联系人电话" v-model="formData.principalContact">
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人电话"
v-model="formData.principalContact"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务状态" prop="serviceStatus" :class="{ 'form-item': source === 'visiual' }"
label="上传图片" label-width="150px" style="display: block">
label-width="150px" <el-select v-model="formData.serviceStatus" placeholder="请选择">
style="display: block" <el-option v-for="e in serviceStatusOptions" :key="e.value" :value="e.value"
prop="attachments" :label="e.label"></el-option>
v-if="formType === 'edit'" </el-select>
> </el-form-item>
<UploadImages :fileList="formData.attachments" @change="(val) => formData.attachments = val"/> <el-form-item label="上传图片" label-width="150px" style="display: block" prop="attachments"
v-if="formType === 'edit'">
<UploadImages :fileList="formData.attachments" @change="(val) => formData.attachments = val" />
</el-form-item> </el-form-item>
<!-- <el-form-item <!-- <el-form-item
label="直接反馈" label="直接反馈"
@ -250,50 +126,20 @@
<div v-show="formType === 'feedback' || showFeedback"> <div v-show="formType === 'feedback' || showFeedback">
<!-- <h3 class="d-h3">反馈内容</h3> --> <!-- <h3 class="d-h3">反馈内容</h3> -->
<el-form <el-form ref="ref_form_feedback" :inline="true" :model="feedbackFormData" :rules="feedbackDataRule"
ref="ref_form_feedback" class="div_form">
:inline="true" <el-form-item label="满意度" style="display: block" label-width="150px"
:model="feedbackFormData" :class="{ 'form-item': source === 'visiual' }" prop="satisfaction">
:rules="feedbackDataRule" <el-select class="item_width_2" v-model="feedbackFormData.satisfaction" placeholder="全部" clearable>
class="div_form" <el-option v-for="item in satisfyArray" :key="item.value" :label="item.label"
> :value="item.value">
<el-form-item
label="满意度"
style="display: block"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="satisfaction"
>
<el-select
class="item_width_2"
v-model="feedbackFormData.satisfaction"
placeholder="全部"
clearable
>
<el-option
v-for="item in satisfyArray"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="备注" prop="serviceGoal" :class="{ 'form-item': source === 'visiual' }"
label="备注" label-width="150px" style="display: block">
prop="serviceGoal" <el-input class="item_width_1" type="textarea" maxlength="1000" show-word-limit :rows="3"
:class="{ 'form-item': source === 'visiual' }" v-model="feedbackFormData.serviceGoal"></el-input>
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
v-model="feedbackFormData.serviceGoal"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -301,33 +147,13 @@
<div class="div_btn"> <div class="div_btn">
<el-button size="small" @click="handleCancle"> </el-button> <el-button size="small" @click="handleCancle"> </el-button>
<el-button <el-button size="small" type="primary" :disabled="btnDisable" @click="handleComfirm"> </el-button>
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
>
</div> </div>
<el-dialog <el-dialog v-if="showLabelForm" :visible.sync="showLabelForm" :append-to-body="true" :close-on-click-modal="false"
v-if="showLabelForm" :close-on-press-escape="false" :title="'标签配置'" width="954px" top="5vh" class="dialog-h"
:visible.sync="showLabelForm" @closed="showLabelForm = false">
:append-to-body="true" <label-form ref="ref_label_form" :ruleList="ruleList" @dialogCancle="addFormCancle" @dialogOk="addFormOk">
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'标签配置'"
width="954px"
top="5vh"
class="dialog-h"
@closed="showLabelForm = false"
>
<label-form
ref="ref_label_form"
:ruleList="ruleList"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"
>
<!-- @handleOk="handleOk" <!-- @handleOk="handleOk"
@handleClose="handleClose" --> @handleClose="handleClose" -->
</label-form> </label-form>
@ -335,7 +161,7 @@
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import { requestPost, requestGet } from "@/js/dai/request"; import { requestPost, requestGet } from "@/js/dai/request";
@ -389,11 +215,11 @@ export default {
if (this.formData.serviceTimeStart) { if (this.formData.serviceTimeStart) {
let serviceTimeStart = new Date(this.formData.serviceTimeStart); let serviceTimeStart = new Date(this.formData.serviceTimeStart);
return ( return (
time.getTime() < serviceTimeStart- 24 * 60 * 60 * 1000 || time.getTime() < serviceTimeStart - 24 * 60 * 60 * 1000 ||
time.getTime() === serviceTimeStart- 24 * 60 * 60 * 1000 time.getTime() === serviceTimeStart - 24 * 60 * 60 * 1000
); );
} else { } else {
return (time.getTime() > nowData || time.getTime() === nowData) ; return (time.getTime() > nowData || time.getTime() === nowData);
} }
}; };
let startDisabledDate = (time) => { let startDisabledDate = (time) => {
@ -416,11 +242,11 @@ export default {
checkStrictly: true, checkStrictly: true,
emitPath: false, emitPath: false,
}, },
serviceStatusOptions: [{ 'label': '进行中', 'value': 'in_service' }, { 'label': '已完成', 'value': 'completed' }, { 'label': '取消', 'value': 'cancel' }],
keyWords: "", keyWords: "",
formData: { formData: {
categoryCode:[], categoryCode: [],
parentCategoryCode:'', parentCategoryCode: '',
resiSearchTagId: "", // resiSearchTagId: "", //
resiSearchTagName: "", // resiSearchTagName: "", //
serviceName: "", // serviceName: "", //
@ -433,6 +259,7 @@ export default {
principalContact: "", // principalContact: "", //
serviceTimeStart: "", //yyyy-MM-dd serviceTimeStart: "", //yyyy-MM-dd
serviceTimeEnd: "", //yyyy-MM-dd serviceTimeEnd: "", //yyyy-MM-dd
serviceStatus: "", // in_servicecompleted:cancel
remark: "", // remark: "", //
attachments: [] attachments: []
}, },
@ -515,7 +342,7 @@ export default {
], ],
showLabelForm: false, showLabelForm: false,
showFeedback: false, showFeedback: false,
demandOptions:[] demandOptions: []
}; };
}, },
@ -552,7 +379,7 @@ export default {
}, },
}, },
components: { labelForm,UploadImages }, components: { labelForm, UploadImages },
async mounted() { async mounted() {
this.startLoading(); this.startLoading();
@ -650,7 +477,7 @@ export default {
} else { } else {
this.formData.categoryCode = [data.parentCategoryCode]; this.formData.categoryCode = [data.parentCategoryCode];
} }
if(!data.noticeApproches){ if (!data.noticeApproches) {
this.formData.noticeApproches = []; this.formData.noticeApproches = [];
} }
this.scopeIdArray = data.gridIdList.map(i => i.objectId); this.scopeIdArray = data.gridIdList.map(i => i.objectId);
@ -804,7 +631,7 @@ export default {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg);
} else { } else {
this.serviceOptions = res.data.filter(item=>item.value == 'party_unit'||item.value == 'community_org'); this.serviceOptions = res.data.filter(item => item.value == 'party_unit' || item.value == 'community_org');
} }
}) })
.catch(() => { .catch(() => {
@ -844,7 +671,7 @@ export default {
const url = "/actual/base/serviceitem/listServerOrgNewTask"; const url = "/actual/base/serviceitem/listServerOrgNewTask";
let params = { let params = {
serverOrgCategoryCode: this.formData.categoryCode[1], serverOrgCategoryCode: this.formData.categoryCode[1],
serverParentOrgCategoryCode:this.formData.categoryCode[0], serverParentOrgCategoryCode: this.formData.categoryCode[0],
serverOrgType: serverOrgType, serverOrgType: serverOrgType,
}; };
let { data, code, msg } = await requestPost(url, params); let { data, code, msg } = await requestPost(url, params);
@ -962,8 +789,8 @@ export default {
this.formData.feedback = null; this.formData.feedback = null;
} }
let params = { let params = {
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'', categoryCode: this.formData.categoryCode[1] ? this.formData.categoryCode[1] : '',
parentCategoryCode:this.formData.categoryCode[0], parentCategoryCode: this.formData.categoryCode[0],
resiSearchTagId: this.formData.resiSearchTagId, resiSearchTagId: this.formData.resiSearchTagId,
resiSearchTagName: this.formData.resiSearchTagName, resiSearchTagName: this.formData.resiSearchTagName,
serviceName: this.formData.serviceName, serviceName: this.formData.serviceName,
@ -976,9 +803,10 @@ export default {
principalContact: this.formData.principalContact, principalContact: this.formData.principalContact,
serviceTimeStart: this.formData.serviceTimeStart, serviceTimeStart: this.formData.serviceTimeStart,
serviceTimeEnd: this.formData.serviceTimeEnd, serviceTimeEnd: this.formData.serviceTimeEnd,
serviceStatus: this.formData.serviceStatus,
remark: this.formData.remark, remark: this.formData.remark,
feedback:this.formData.feedback, feedback: this.formData.feedback,
serviceRecordId:this.serviceRecordId serviceRecordId: this.serviceRecordId
}; };
let url = ""; let url = "";
if (this.formType != "edit") { if (this.formType != "edit") {
@ -1007,8 +835,8 @@ export default {
resetData() { resetData() {
this.formData = { this.formData = {
categoryCode:[], categoryCode: [],
parentCategoryCode:'', parentCategoryCode: '',
gridIdList: [], // gridIdList: [], //
principalName: "", //() principalName: "", //()
principalContact: "", // principalContact: "", //
@ -1047,13 +875,14 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@/assets/scss/modules/management/form-main.scss"; @import "@/assets/scss/modules/management/form-main.scss";
@import "@/assets/scss/modules/visual/a_customize.scss"; @import "@/assets/scss/modules/visual/a_customize.scss";
.form-item::v-deep .el-form-item__label { .form-item::v-deep .el-form-item__label {
color: #fff; color: #fff;
} }
.form-item { .form-item {
.el-radio { .el-radio {
color: #fff; color: #fff;

359
src/views/modules/communityService/jinengzhaoren/addForm.vue

@ -1,26 +1,12 @@
<template> <template>
<div> <div>
<div <div class="dialog-h-content scroll-h" :class="{ 'visiual-form': source === 'visiual' }">
class="dialog-h-content scroll-h" <el-form v-if="formType === 'add' || formType === 'edit'" ref="ref_form" :inline="true" :model="formData"
:class="{ 'visiual-form': source === 'visiual' }" :rules="dataRule" class="div_form">
>
<el-form
v-if="formType === 'add' || formType === 'edit'"
ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
class="div_form"
>
<el-form-item label="需求类型" prop="categoryCode" label-width="150px"> <el-form-item label="需求类型" prop="categoryCode" label-width="150px">
<el-cascader <el-cascader v-model="formData.categoryCode" :options="demandOptions"
v-model="formData.categoryCode" :props="{ label: 'categoryName', value: 'categoryCode', children: 'childCateList' }" clearable
:options="demandOptions" size="small" class="u-item-width-normal"></el-cascader>
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item> </el-form-item>
<!-- <el-form-item label="政策依据" <!-- <el-form-item label="政策依据"
prop="policyId" prop="policyId"
@ -38,54 +24,21 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item <el-form-item label="服务事项" prop="serviceName" label-width="150px"
label="服务事项" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="serviceName" <el-input class="item_width_1" placeholder="请输入服务事项" v-model="formData.serviceName">
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入服务事项"
v-model="formData.serviceName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务内容" prop="remark" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
label="服务内容" style="display: block">
prop="remark" <el-input class="item_width_1" type="textarea" maxlength="1000" show-word-limit :rows="3"
label-width="150px" placeholder="请输入备注,不超过1000字" v-model="formData.remark"></el-input>
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过1000字"
v-model="formData.remark"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="查找享受服务人员" prop="resiSearchTagId" :class="{ 'form-item': source === 'visiual' }"
label="查找享受服务人员" label-width="150px" style="display: block">
prop="resiSearchTagId" <input type="text" v-model="formData.resiSearchTagId" v-show="false" />
:class="{ 'form-item': source === 'visiual' }" <template style="margin-right: 10px" v-if="formData.resiSearchTagName">
label-width="150px"
style="display: block"
>
<input
type="text"
v-model="formData.resiSearchTagId"
v-show="false"
/>
<template
style="margin-right: 10px"
v-if="formData.resiSearchTagName"
>
<el-tag @close="handleCloseTag" closable style="margin-right: 10px"> <el-tag @close="handleCloseTag" closable style="margin-right: 10px">
{{ formData.resiSearchTagName }} {{ formData.resiSearchTagName }}
</el-tag> </el-tag>
@ -95,143 +48,66 @@
<span> <i class="el-icon-plus"></i> 按标签查找 </span> <span> <i class="el-icon-plus"></i> 按标签查找 </span>
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务组织" prop="serviceOrgId" label-width="150px"
label="服务组织" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="serviceOrgId" <el-select v-model="formData.serviceOrgType" class="input-width-small" placeholder="请选择" clearable
label-width="150px" @change="handleServiceChange('add', $event)">
:class="{ 'form-item': source === 'visiual' }" <el-option v-for="item in serviceOptions" :key="item.value" :label="item.label" :value="item.value">
style="display: block"
>
<el-select
v-model="formData.serviceOrgType"
class="input-width-small"
placeholder="请选择"
clearable
@change="handleServiceChange('add', $event)"
>
<el-option
v-for="item in serviceOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
- -
<el-select <el-select v-model="formData.serviceOrgId" class="input-width-middle" filterable placeholder="请选择"
v-model="formData.serviceOrgId" clearable>
class="input-width-middle" <el-option v-for="item in serviceOptiondList" :key="item.id" :label="item.label" :value="item.id">
filterable
placeholder="请选择"
clearable
>
<el-option
v-for="item in serviceOptiondList"
:key="item.id"
:label="item.label"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item prop="noticeApproches" label="自动通知服务组织" label-width="150px" style="display: block">
prop="noticeApproches"
label="自动通知服务组织"
label-width="150px"
style="display: block"
>
<el-checkbox-group v-model="formData.noticeApproches"> <el-checkbox-group v-model="formData.noticeApproches">
<el-checkbox label="sms" value="sms">短信通知</el-checkbox> <el-checkbox label="sms" value="sms">短信通知</el-checkbox>
<el-checkbox label="wx_official_account" value="wx_official_account">微信公众号消息通知</el-checkbox> <el-checkbox label="wx_official_account" value="wx_official_account">微信公众号消息通知</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务范围" prop="gridIdList" label-width="150px"
label="服务范围" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="gridIdList" <el-cascader class="item_width_1" ref="myCascader" v-model="scopeIdArray" :key="iscascaderShow"
label-width="150px" :options="casOptions" :props="optionProps" :show-all-levels="false" collapse-tags
:class="{ 'form-item': source === 'visiual' }" @change="handleChangeScope"></el-cascader>
style="display: block"
>
<el-cascader
class="item_width_1"
ref="myCascader"
v-model="scopeIdArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
collapse-tags
@change="handleChangeScope"
></el-cascader>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务时间" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
label="服务时间" prop="serviceTimeStart">
label-width="150px" <el-date-picker v-model="formData.serviceTimeStart" :picker-options="startPickerOptions"
:class="{ 'form-item': source === 'visiual' }" class="item_width_2" style="width: 220px" type="date" value-format="yyyy-MM-dd HH:mm:ss"
prop="serviceTimeStart" value="yyyy-MM-dd" placeholder="开始时间">
>
<el-date-picker
v-model="formData.serviceTimeStart"
:picker-options="startPickerOptions"
class="item_width_2"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="开始时间"
>
</el-date-picker> </el-date-picker>
<span class="u-data-tag"></span> <span class="u-data-tag"></span>
<el-date-picker <el-date-picker v-model="formData.serviceTimeEnd" :picker-options="endPickerOptions"
v-model="formData.serviceTimeEnd" class="item_width_2 u-data-tag" style="width: 220px" type="date" value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="endPickerOptions" value="yyyy-MM-dd" placeholder="结束时间">
class="item_width_2 u-data-tag"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="结束时间"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="经办人" prop="principalName" :class="{ 'form-item': source === 'visiual' }"
label="经办人" label-width="150px" style="display: block">
prop="principalName" <el-input class="item_width_1" placeholder="请输入联系人姓名" v-model="formData.principalName">
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人姓名"
v-model="formData.principalName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="联系方式" prop="principalContact" :class="{ 'form-item': source === 'visiual' }"
label="联系方式" label-width="150px" style="display: block">
prop="principalContact" <el-input class="item_width_1" placeholder="请输入联系人电话" v-model="formData.principalContact">
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人电话"
v-model="formData.principalContact"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务状态" prop="serviceStatus" :class="{ 'form-item': source === 'visiual' }"
label="上传图片" label-width="150px" style="display: block">
label-width="150px" <el-select v-model="formData.serviceStatus" placeholder="请选择">
style="display: block" <el-option v-for="e in serviceStatusOptions" :key="e.value" :value="e.value"
prop="attachments" :label="e.label"></el-option>
v-if="formType === 'edit'" </el-select>
> </el-form-item>
<UploadImages :fileList="formData.attachments" @change="(val) => formData.attachments = val"/> <el-form-item label="上传图片" label-width="150px" style="display: block" prop="attachments"
v-if="formType === 'edit'">
<UploadImages :fileList="formData.attachments" @change="(val) => formData.attachments = val" />
</el-form-item> </el-form-item>
<!-- <el-form-item <!-- <el-form-item
label="直接反馈" label="直接反馈"
@ -250,50 +126,20 @@
<div v-show="formType === 'feedback' || showFeedback"> <div v-show="formType === 'feedback' || showFeedback">
<!-- <h3 class="d-h3">反馈内容</h3> --> <!-- <h3 class="d-h3">反馈内容</h3> -->
<el-form <el-form ref="ref_form_feedback" :inline="true" :model="feedbackFormData" :rules="feedbackDataRule"
ref="ref_form_feedback" class="div_form">
:inline="true" <el-form-item label="满意度" style="display: block" label-width="150px"
:model="feedbackFormData" :class="{ 'form-item': source === 'visiual' }" prop="satisfaction">
:rules="feedbackDataRule" <el-select class="item_width_2" v-model="feedbackFormData.satisfaction" placeholder="全部" clearable>
class="div_form" <el-option v-for="item in satisfyArray" :key="item.value" :label="item.label"
> :value="item.value">
<el-form-item
label="满意度"
style="display: block"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="satisfaction"
>
<el-select
class="item_width_2"
v-model="feedbackFormData.satisfaction"
placeholder="全部"
clearable
>
<el-option
v-for="item in satisfyArray"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="备注" prop="serviceGoal" :class="{ 'form-item': source === 'visiual' }"
label="备注" label-width="150px" style="display: block">
prop="serviceGoal" <el-input class="item_width_1" type="textarea" maxlength="1000" show-word-limit :rows="3"
:class="{ 'form-item': source === 'visiual' }" v-model="feedbackFormData.serviceGoal"></el-input>
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
v-model="feedbackFormData.serviceGoal"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -301,33 +147,13 @@
<div class="div_btn"> <div class="div_btn">
<el-button size="small" @click="handleCancle"> </el-button> <el-button size="small" @click="handleCancle"> </el-button>
<el-button <el-button size="small" type="primary" :disabled="btnDisable" @click="handleComfirm"> </el-button>
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
>
</div> </div>
<el-dialog <el-dialog v-if="showLabelForm" :visible.sync="showLabelForm" :append-to-body="true" :close-on-click-modal="false"
v-if="showLabelForm" :close-on-press-escape="false" :title="'标签配置'" width="954px" top="5vh" class="dialog-h"
:visible.sync="showLabelForm" @closed="showLabelForm = false">
:append-to-body="true" <label-form ref="ref_label_form" :ruleList="ruleList" @dialogCancle="addFormCancle" @dialogOk="addFormOk">
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'标签配置'"
width="954px"
top="5vh"
class="dialog-h"
@closed="showLabelForm = false"
>
<label-form
ref="ref_label_form"
:ruleList="ruleList"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"
>
<!-- @handleOk="handleOk" <!-- @handleOk="handleOk"
@handleClose="handleClose" --> @handleClose="handleClose" -->
</label-form> </label-form>
@ -335,7 +161,7 @@
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import { requestPost, requestGet } from "@/js/dai/request"; import { requestPost, requestGet } from "@/js/dai/request";
@ -389,11 +215,11 @@ export default {
if (this.formData.serviceTimeStart) { if (this.formData.serviceTimeStart) {
let serviceTimeStart = new Date(this.formData.serviceTimeStart); let serviceTimeStart = new Date(this.formData.serviceTimeStart);
return ( return (
time.getTime() < serviceTimeStart- 24 * 60 * 60 * 1000 || time.getTime() < serviceTimeStart - 24 * 60 * 60 * 1000 ||
time.getTime() === serviceTimeStart- 24 * 60 * 60 * 1000 time.getTime() === serviceTimeStart - 24 * 60 * 60 * 1000
); );
} else { } else {
return (time.getTime() > nowData || time.getTime() === nowData) ; return (time.getTime() > nowData || time.getTime() === nowData);
} }
}; };
let startDisabledDate = (time) => { let startDisabledDate = (time) => {
@ -415,11 +241,11 @@ export default {
checkStrictly: true, checkStrictly: true,
emitPath: false, emitPath: false,
}, },
serviceStatusOptions: [{ 'label': '进行中', 'value': 'in_service' }, { 'label': '已完成', 'value': 'completed' }, { 'label': '取消', 'value': 'cancel' }],
keyWords: "", keyWords: "",
formData: { formData: {
categoryCode:[], categoryCode: [],
parentCategoryCode:'', parentCategoryCode: '',
resiSearchTagId: "", // resiSearchTagId: "", //
resiSearchTagName: "", // resiSearchTagName: "", //
serviceName: "", // serviceName: "", //
@ -432,7 +258,8 @@ export default {
principalContact: "", // principalContact: "", //
serviceTimeStart: "", //yyyy-MM-dd serviceTimeStart: "", //yyyy-MM-dd
serviceTimeEnd: "", //yyyy-MM-dd serviceTimeEnd: "", //yyyy-MM-dd
dataCategoryCode:"skill", serviceStatus: "", // in_servicecompleted:cancel
dataCategoryCode: "skill",
remark: "", // remark: "", //
attachments: [] attachments: []
}, },
@ -515,7 +342,7 @@ export default {
], ],
showLabelForm: false, showLabelForm: false,
showFeedback: false, showFeedback: false,
demandOptions:[] demandOptions: []
}; };
}, },
@ -649,7 +476,7 @@ export default {
} else { } else {
this.formData.categoryCode = [data.parentCategoryCode]; this.formData.categoryCode = [data.parentCategoryCode];
} }
if(!data.noticeApproches){ if (!data.noticeApproches) {
this.formData.noticeApproches = []; this.formData.noticeApproches = [];
} }
this.scopeIdArray = data.gridIdList.map(i => i.objectId); this.scopeIdArray = data.gridIdList.map(i => i.objectId);
@ -802,7 +629,7 @@ export default {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg);
} else { } else {
this.serviceOptions = res.data.filter(item=>item.value == 'party_unit'||item.value == 'community_org'||item.value == 'publicWelfare'); this.serviceOptions = res.data.filter(item => item.value == 'party_unit' || item.value == 'community_org' || item.value == 'publicWelfare');
} }
}) })
.catch(() => { .catch(() => {
@ -842,7 +669,7 @@ export default {
const url = "/actual/base/serviceitem/listServerOrgNewTask"; const url = "/actual/base/serviceitem/listServerOrgNewTask";
let params = { let params = {
serverOrgCategoryCode: this.formData.categoryCode[1], serverOrgCategoryCode: this.formData.categoryCode[1],
serverParentOrgCategoryCode:this.formData.categoryCode[0], serverParentOrgCategoryCode: this.formData.categoryCode[0],
serverOrgType: serverOrgType, serverOrgType: serverOrgType,
}; };
let { data, code, msg } = await requestPost(url, params); let { data, code, msg } = await requestPost(url, params);
@ -943,7 +770,7 @@ export default {
...this.feedbackFormData, ...this.feedbackFormData,
}; };
const { data, code, msg,internalMsg } = await requestPost(url, params); const { data, code, msg, internalMsg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.$message.success("反馈成功"); this.$message.success("反馈成功");
@ -960,8 +787,8 @@ export default {
this.formData.feedback = null; this.formData.feedback = null;
} }
let params = { let params = {
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'', categoryCode: this.formData.categoryCode[1] ? this.formData.categoryCode[1] : '',
parentCategoryCode:this.formData.categoryCode[0], parentCategoryCode: this.formData.categoryCode[0],
resiSearchTagId: this.formData.resiSearchTagId, resiSearchTagId: this.formData.resiSearchTagId,
resiSearchTagName: this.formData.resiSearchTagName, resiSearchTagName: this.formData.resiSearchTagName,
serviceName: this.formData.serviceName, serviceName: this.formData.serviceName,
@ -974,9 +801,10 @@ export default {
principalContact: this.formData.principalContact, principalContact: this.formData.principalContact,
serviceTimeStart: this.formData.serviceTimeStart, serviceTimeStart: this.formData.serviceTimeStart,
serviceTimeEnd: this.formData.serviceTimeEnd, serviceTimeEnd: this.formData.serviceTimeEnd,
serviceStatus: this.formData.serviceStatus,
remark: this.formData.remark, remark: this.formData.remark,
feedback:this.formData.feedback, feedback: this.formData.feedback,
serviceRecordId:this.serviceRecordId serviceRecordId: this.serviceRecordId
}; };
let url = ""; let url = "";
if (this.formType != "edit") { if (this.formType != "edit") {
@ -1004,8 +832,8 @@ export default {
resetData() { resetData() {
this.formData = { this.formData = {
categoryCode:[], categoryCode: [],
parentCategoryCode:'', parentCategoryCode: '',
gridIdList: [], // gridIdList: [], //
principalName: "", //() principalName: "", //()
principalContact: "", // principalContact: "", //
@ -1044,13 +872,14 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@/assets/scss/modules/management/form-main.scss"; @import "@/assets/scss/modules/management/form-main.scss";
@import "@/assets/scss/modules/visual/a_customize.scss"; @import "@/assets/scss/modules/visual/a_customize.scss";
.form-item::v-deep .el-form-item__label { .form-item::v-deep .el-form-item__label {
color: #fff; color: #fff;
} }
.form-item { .form-item {
.el-radio { .el-radio {
color: #fff; color: #fff;

359
src/views/modules/communityService/wennuanzhaoren/addForm.vue

@ -1,26 +1,12 @@
<template> <template>
<div> <div>
<div <div class="dialog-h-content scroll-h" :class="{ 'visiual-form': source === 'visiual' }">
class="dialog-h-content scroll-h" <el-form v-if="formType === 'add' || formType === 'edit'" ref="ref_form" :inline="true" :model="formData"
:class="{ 'visiual-form': source === 'visiual' }" :rules="dataRule" class="div_form">
>
<el-form
v-if="formType === 'add' || formType === 'edit'"
ref="ref_form"
:inline="true"
:model="formData"
:rules="dataRule"
class="div_form"
>
<el-form-item label="服务类别" prop="categoryCode" label-width="150px"> <el-form-item label="服务类别" prop="categoryCode" label-width="150px">
<el-cascader <el-cascader v-model="formData.categoryCode" :options="demandOptions"
v-model="formData.categoryCode" :props="{ label: 'categoryName', value: 'categoryCode', children: 'childCateList' }" clearable
:options="demandOptions" size="small" class="u-item-width-normal"></el-cascader>
:props="{label: 'categoryName',value: 'categoryCode',children: 'childCateList'}"
clearable
size="small"
class="u-item-width-normal"
></el-cascader>
</el-form-item> </el-form-item>
<!-- <el-form-item label="政策依据" <!-- <el-form-item label="政策依据"
prop="policyId" prop="policyId"
@ -38,54 +24,21 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item <el-form-item label="服务事项" prop="serviceName" label-width="150px"
label="服务事项" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="serviceName" <el-input class="item_width_1" placeholder="请输入服务事项" v-model="formData.serviceName">
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入服务事项"
v-model="formData.serviceName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务内容" prop="remark" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
label="服务内容" style="display: block">
prop="remark" <el-input class="item_width_1" type="textarea" maxlength="1000" show-word-limit :rows="3"
label-width="150px" placeholder="请输入备注,不超过1000字" v-model="formData.remark"></el-input>
:class="{ 'form-item': source === 'visiual' }"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
placeholder="请输入备注,不超过1000字"
v-model="formData.remark"
></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="查找享受服务人员" prop="resiSearchTagId" :class="{ 'form-item': source === 'visiual' }"
label="查找享受服务人员" label-width="150px" style="display: block">
prop="resiSearchTagId" <input type="text" v-model="formData.resiSearchTagId" v-show="false" />
:class="{ 'form-item': source === 'visiual' }" <template style="margin-right: 10px" v-if="formData.resiSearchTagName">
label-width="150px"
style="display: block"
>
<input
type="text"
v-model="formData.resiSearchTagId"
v-show="false"
/>
<template
style="margin-right: 10px"
v-if="formData.resiSearchTagName"
>
<el-tag @close="handleCloseTag" closable style="margin-right: 10px"> <el-tag @close="handleCloseTag" closable style="margin-right: 10px">
{{ formData.resiSearchTagName }} {{ formData.resiSearchTagName }}
</el-tag> </el-tag>
@ -95,143 +48,66 @@
<span> <i class="el-icon-plus"></i> 按标签查找 </span> <span> <i class="el-icon-plus"></i> 按标签查找 </span>
</el-button> </el-button>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务组织" prop="serviceOrgId" label-width="150px"
label="服务组织" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="serviceOrgId" <el-select v-model="formData.serviceOrgType" class="input-width-small" placeholder="请选择" clearable
label-width="150px" @change="handleServiceChange('add', $event)">
:class="{ 'form-item': source === 'visiual' }" <el-option v-for="item in serviceOptions" :key="item.value" :label="item.label" :value="item.value">
style="display: block"
>
<el-select
v-model="formData.serviceOrgType"
class="input-width-small"
placeholder="请选择"
clearable
@change="handleServiceChange('add', $event)"
>
<el-option
v-for="item in serviceOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
- -
<el-select <el-select v-model="formData.serviceOrgId" class="input-width-middle" filterable placeholder="请选择"
v-model="formData.serviceOrgId" clearable>
class="input-width-middle" <el-option v-for="item in serviceOptiondList" :key="item.id" :label="item.label" :value="item.id">
filterable
placeholder="请选择"
clearable
>
<el-option
v-for="item in serviceOptiondList"
:key="item.id"
:label="item.label"
:value="item.id"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item prop="noticeApproches" label="自动通知服务组织" label-width="150px" style="display: block">
prop="noticeApproches"
label="自动通知服务组织"
label-width="150px"
style="display: block"
>
<el-checkbox-group v-model="formData.noticeApproches"> <el-checkbox-group v-model="formData.noticeApproches">
<el-checkbox label="sms" >短信通知</el-checkbox> <el-checkbox label="sms">短信通知</el-checkbox>
<el-checkbox label="wx_official_account" >微信公众号消息通知</el-checkbox> <el-checkbox label="wx_official_account">微信公众号消息通知</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务范围" prop="gridIdList" label-width="150px"
label="服务范围" :class="{ 'form-item': source === 'visiual' }" style="display: block">
prop="gridIdList" <el-cascader class="item_width_1" ref="myCascader" v-model="scopeIdArray" :key="iscascaderShow"
label-width="150px" :options="casOptions" :props="optionProps" :show-all-levels="false" collapse-tags
:class="{ 'form-item': source === 'visiual' }" @change="handleChangeScope"></el-cascader>
style="display: block"
>
<el-cascader
class="item_width_1"
ref="myCascader"
v-model="scopeIdArray"
:key="iscascaderShow"
:options="casOptions"
:props="optionProps"
:show-all-levels="false"
collapse-tags
@change="handleChangeScope"
></el-cascader>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务时间" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
label="服务时间" prop="serviceTimeStart">
label-width="150px" <el-date-picker v-model="formData.serviceTimeStart" :picker-options="startPickerOptions"
:class="{ 'form-item': source === 'visiual' }" class="item_width_2" style="width: 220px" type="date" value-format="yyyy-MM-dd HH:mm:ss"
prop="serviceTimeStart" value="yyyy-MM-dd" placeholder="开始时间">
>
<el-date-picker
v-model="formData.serviceTimeStart"
:picker-options="startPickerOptions"
class="item_width_2"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="开始时间"
>
</el-date-picker> </el-date-picker>
<span class="u-data-tag"></span> <span class="u-data-tag"></span>
<el-date-picker <el-date-picker v-model="formData.serviceTimeEnd" :picker-options="endPickerOptions"
v-model="formData.serviceTimeEnd" class="item_width_2 u-data-tag" style="width: 220px" type="date" value-format="yyyy-MM-dd HH:mm:ss"
:picker-options="endPickerOptions" value="yyyy-MM-dd" placeholder="结束时间">
class="item_width_2 u-data-tag"
style="width: 220px"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd"
placeholder="结束时间"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="经办人" prop="principalName" :class="{ 'form-item': source === 'visiual' }"
label="经办人" label-width="150px" style="display: block">
prop="principalName" <el-input class="item_width_1" placeholder="请输入联系人姓名" v-model="formData.principalName">
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人姓名"
v-model="formData.principalName"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="联系方式" prop="principalContact" :class="{ 'form-item': source === 'visiual' }"
label="联系方式" label-width="150px" style="display: block">
prop="principalContact" <el-input class="item_width_1" placeholder="请输入联系人电话" v-model="formData.principalContact">
:class="{ 'form-item': source === 'visiual' }"
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
placeholder="请输入联系人电话"
v-model="formData.principalContact"
>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="服务状态" prop="serviceStatus" :class="{ 'form-item': source === 'visiual' }"
label="上传图片" label-width="150px" style="display: block">
label-width="150px" <el-select v-model="formData.serviceStatus" placeholder="请选择">
style="display: block" <el-option v-for="e in serviceStatusOptions" :key="e.value" :value="e.value"
prop="attachments" :label="e.label"></el-option>
v-if="formType === 'edit'" </el-select>
> </el-form-item>
<UploadImages :fileList="formData.attachments" @change="(val) => formData.attachments = val"/> <el-form-item label="上传图片" label-width="150px" style="display: block" prop="attachments"
v-if="formType === 'edit'">
<UploadImages :fileList="formData.attachments" @change="(val) => formData.attachments = val" />
</el-form-item> </el-form-item>
<!-- <el-form-item <!-- <el-form-item
label="直接反馈" label="直接反馈"
@ -250,50 +126,20 @@
<div v-show="formType === 'feedback' || showFeedback"> <div v-show="formType === 'feedback' || showFeedback">
<!-- <h3 class="d-h3">反馈内容</h3> --> <!-- <h3 class="d-h3">反馈内容</h3> -->
<el-form <el-form ref="ref_form_feedback" :inline="true" :model="feedbackFormData" :rules="feedbackDataRule"
ref="ref_form_feedback" class="div_form">
:inline="true" <el-form-item label="满意度" style="display: block" label-width="150px"
:model="feedbackFormData" :class="{ 'form-item': source === 'visiual' }" prop="satisfaction">
:rules="feedbackDataRule" <el-select class="item_width_2" v-model="feedbackFormData.satisfaction" placeholder="全部" clearable>
class="div_form" <el-option v-for="item in satisfyArray" :key="item.value" :label="item.label"
> :value="item.value">
<el-form-item
label="满意度"
style="display: block"
label-width="150px"
:class="{ 'form-item': source === 'visiual' }"
prop="satisfaction"
>
<el-select
class="item_width_2"
v-model="feedbackFormData.satisfaction"
placeholder="全部"
clearable
>
<el-option
v-for="item in satisfyArray"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="备注" prop="serviceGoal" :class="{ 'form-item': source === 'visiual' }"
label="备注" label-width="150px" style="display: block">
prop="serviceGoal" <el-input class="item_width_1" type="textarea" maxlength="1000" show-word-limit :rows="3"
:class="{ 'form-item': source === 'visiual' }" v-model="feedbackFormData.serviceGoal"></el-input>
label-width="150px"
style="display: block"
>
<el-input
class="item_width_1"
type="textarea"
maxlength="1000"
show-word-limit
:rows="3"
v-model="feedbackFormData.serviceGoal"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -301,33 +147,13 @@
<div class="div_btn"> <div class="div_btn">
<el-button size="small" @click="handleCancle"> </el-button> <el-button size="small" @click="handleCancle"> </el-button>
<el-button <el-button size="small" type="primary" :disabled="btnDisable" @click="handleComfirm"> </el-button>
size="small"
type="primary"
:disabled="btnDisable"
@click="handleComfirm"
> </el-button
>
</div> </div>
<el-dialog <el-dialog v-if="showLabelForm" :visible.sync="showLabelForm" :append-to-body="true" :close-on-click-modal="false"
v-if="showLabelForm" :close-on-press-escape="false" :title="'标签配置'" width="954px" top="5vh" class="dialog-h"
:visible.sync="showLabelForm" @closed="showLabelForm = false">
:append-to-body="true" <label-form ref="ref_label_form" :ruleList="ruleList" @dialogCancle="addFormCancle" @dialogOk="addFormOk">
:close-on-click-modal="false"
:close-on-press-escape="false"
:title="'标签配置'"
width="954px"
top="5vh"
class="dialog-h"
@closed="showLabelForm = false"
>
<label-form
ref="ref_label_form"
:ruleList="ruleList"
@dialogCancle="addFormCancle"
@dialogOk="addFormOk"
>
<!-- @handleOk="handleOk" <!-- @handleOk="handleOk"
@handleClose="handleClose" --> @handleClose="handleClose" -->
</label-form> </label-form>
@ -335,7 +161,7 @@
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import { requestPost, requestGet } from "@/js/dai/request"; import { requestPost, requestGet } from "@/js/dai/request";
@ -389,11 +215,11 @@ export default {
if (this.formData.serviceTimeStart) { if (this.formData.serviceTimeStart) {
let serviceTimeStart = new Date(this.formData.serviceTimeStart); let serviceTimeStart = new Date(this.formData.serviceTimeStart);
return ( return (
time.getTime() < serviceTimeStart- 24 * 60 * 60 * 1000 || time.getTime() < serviceTimeStart - 24 * 60 * 60 * 1000 ||
time.getTime() === serviceTimeStart- 24 * 60 * 60 * 1000 time.getTime() === serviceTimeStart - 24 * 60 * 60 * 1000
); );
} else { } else {
return (time.getTime() > nowData || time.getTime() === nowData) ; return (time.getTime() > nowData || time.getTime() === nowData);
} }
}; };
let startDisabledDate = (time) => { let startDisabledDate = (time) => {
@ -416,11 +242,11 @@ export default {
checkStrictly: true, checkStrictly: true,
emitPath: false, emitPath: false,
}, },
serviceStatusOptions: [{ 'label': '进行中', 'value': 'in_service' }, { 'label': '已完成', 'value': 'completed' }, { 'label': '取消', 'value': 'cancel' }],
keyWords: "", keyWords: "",
formData: { formData: {
categoryCode:[], categoryCode: [],
parentCategoryCode:'', parentCategoryCode: '',
resiSearchTagId: "", // resiSearchTagId: "", //
resiSearchTagName: "", // resiSearchTagName: "", //
serviceName: "", // serviceName: "", //
@ -433,7 +259,8 @@ export default {
principalContact: "", // principalContact: "", //
serviceTimeStart: "", //yyyy-MM-dd serviceTimeStart: "", //yyyy-MM-dd
serviceTimeEnd: "", //yyyy-MM-dd serviceTimeEnd: "", //yyyy-MM-dd
dataCategoryCode:"warm", serviceStatus: "", // in_servicecompleted:cancel
dataCategoryCode: "warm",
remark: "", // remark: "", //
attachments: [] attachments: []
}, },
@ -516,7 +343,7 @@ export default {
], ],
showLabelForm: false, showLabelForm: false,
showFeedback: false, showFeedback: false,
demandOptions:[], demandOptions: [],
}; };
}, },
@ -608,7 +435,7 @@ export default {
} else { } else {
this.formData.categoryCode = [data.parentCategoryCode]; this.formData.categoryCode = [data.parentCategoryCode];
} }
if(!data.noticeApproches){ if (!data.noticeApproches) {
this.formData.noticeApproches = []; this.formData.noticeApproches = [];
} }
this.scopeIdArray = data.gridIdList.map(i => i.objectId); this.scopeIdArray = data.gridIdList.map(i => i.objectId);
@ -762,7 +589,7 @@ export default {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg);
} else { } else {
this.serviceOptions = res.data.filter(item=>item.value == 'party_unit'||item.value == 'community_org'); this.serviceOptions = res.data.filter(item => item.value == 'party_unit' || item.value == 'community_org');
} }
}) })
.catch(() => { .catch(() => {
@ -846,7 +673,7 @@ export default {
const url = "/actual/base/serviceitem/listServerOrgNewTask"; const url = "/actual/base/serviceitem/listServerOrgNewTask";
let params = { let params = {
serverOrgCategoryCode: this.formData.categoryCode[1], serverOrgCategoryCode: this.formData.categoryCode[1],
serverParentOrgCategoryCode:this.formData.categoryCode[0], serverParentOrgCategoryCode: this.formData.categoryCode[0],
serverOrgType: serverOrgType, serverOrgType: serverOrgType,
}; };
let { data, code, msg } = await requestPost(url, params); let { data, code, msg } = await requestPost(url, params);
@ -946,7 +773,7 @@ export default {
...this.feedbackFormData, ...this.feedbackFormData,
}; };
const { data, code, msg ,internalMsg} = await requestPost(url, params); const { data, code, msg, internalMsg } = await requestPost(url, params);
if (code === 0) { if (code === 0) {
this.$message.success("反馈成功"); this.$message.success("反馈成功");
@ -963,8 +790,8 @@ export default {
this.formData.feedback = null; this.formData.feedback = null;
} }
let params = { let params = {
categoryCode:this.formData.categoryCode[1]?this.formData.categoryCode[1]:'', categoryCode: this.formData.categoryCode[1] ? this.formData.categoryCode[1] : '',
parentCategoryCode:this.formData.categoryCode[0], parentCategoryCode: this.formData.categoryCode[0],
resiSearchTagId: this.formData.resiSearchTagId, resiSearchTagId: this.formData.resiSearchTagId,
resiSearchTagName: this.formData.resiSearchTagName, resiSearchTagName: this.formData.resiSearchTagName,
serviceName: this.formData.serviceName, serviceName: this.formData.serviceName,
@ -977,9 +804,10 @@ export default {
principalContact: this.formData.principalContact, principalContact: this.formData.principalContact,
serviceTimeStart: this.formData.serviceTimeStart, serviceTimeStart: this.formData.serviceTimeStart,
serviceTimeEnd: this.formData.serviceTimeEnd, serviceTimeEnd: this.formData.serviceTimeEnd,
serviceStatus: this.formData.serviceStatus,
remark: this.formData.remark, remark: this.formData.remark,
feedback:this.formData.feedback, feedback: this.formData.feedback,
serviceRecordId:this.serviceRecordId, serviceRecordId: this.serviceRecordId,
}; };
let url = ""; let url = "";
if (this.formType != "edit") { if (this.formType != "edit") {
@ -1046,13 +874,14 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "@/assets/scss/modules/management/form-main.scss"; @import "@/assets/scss/modules/management/form-main.scss";
@import "@/assets/scss/modules/visual/a_customize.scss"; @import "@/assets/scss/modules/visual/a_customize.scss";
.form-item::v-deep .el-form-item__label { .form-item::v-deep .el-form-item__label {
color: #fff; color: #fff;
} }
.form-item { .form-item {
.el-radio { .el-radio {
color: #fff; color: #fff;

Loading…
Cancel
Save