Browse Source

项目记录

shibei_master
jiangyy 3 years ago
parent
commit
5ef5133764
  1. 230
      src/views/modules/communityService/fuwujilu/addForm.vue
  2. 196
      src/views/modules/communityService/fuwujilu/detailForm.vue
  3. 98
      src/views/modules/communityService/fuwujilu/fuwuList.vue

230
src/views/modules/communityService/fuwujilu/addForm.vue

@ -11,8 +11,8 @@
<el-form-item label="服务分类" <el-form-item label="服务分类"
label-width="150px" label-width="150px"
prop="serviceCategoryId"> prop="serviceCategoryKey">
<el-select v-model="formData.serviceCategoryId" <el-select v-model="formData.serviceCategoryKey"
placeholder="请选择" placeholder="请选择"
clearable clearable
class="item_width_1"> class="item_width_1">
@ -85,12 +85,12 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系方式" <el-form-item label="联系方式"
prop="principalConcat" prop="principalContact"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
<el-input class="item_width_1" <el-input class="item_width_1"
placeholder="请输入联系人电话" placeholder="请输入联系人电话"
v-model="formData.principalConcat"> v-model="formData.principalContact">
</el-input> </el-input>
</el-form-item> </el-form-item>
@ -101,7 +101,7 @@
:picker-options="startPickerOptions" :picker-options="startPickerOptions"
class="item_width_2" class="item_width_2"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd" value="yyyy-MM-dd"
placeholder="开始时间"> placeholder="开始时间">
</el-date-picker> </el-date-picker>
@ -110,7 +110,7 @@
:picker-options="endPickerOptions" :picker-options="endPickerOptions"
class="item_width_2 data-tag" class="item_width_2 data-tag"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd" value="yyyy-MM-dd"
placeholder="结束时间"> placeholder="结束时间">
</el-date-picker> </el-date-picker>
@ -196,7 +196,8 @@
<el-form-item label="服务状态" <el-form-item label="服务状态"
label-width="150px" label-width="150px"
prop="serviceStatus"> prop="serviceStatus">
<el-select class="item_width_1" <span>已完成</span>
<!-- <el-select class="item_width_1"
v-model="feedbackFormData.serviceStatus" v-model="feedbackFormData.serviceStatus"
placeholder="全部" placeholder="全部"
clearable> clearable>
@ -205,7 +206,7 @@
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
</el-option> </el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="满意度" <el-form-item label="满意度"
@ -261,17 +262,17 @@
prop="attach"> prop="attach">
<el-upload class="upload-demo" <el-upload class="upload-demo"
:action="uploadUlr" :action="uploadUlr"
accept=".doc,.pdf,.xls,.docx,.xlsx" accept=".doc,.pdf,.xls,.docx,.xlsx,.jpg,.png,.jpeg,.bmp,.mp4,.wma,.m4a,.mp3"
:on-success="handleFileSuccess" :on-success="handleFileSuccess"
:on-remove="handleFileRemove" :on-remove="handleFileRemove"
:on-preview="handleFileDownload"
:limit="3" :limit="3"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:file-list="fileList"> :file-list="fileList">
<el-button size="small" <el-button size="small"
:disabled="fileList.length===3"
type="primary">点击上传</el-button> type="primary">点击上传</el-button>
<div slot="tip" <div slot="tip"
class="el-upload__tip">只能上传wordexcelpdf文件</div> class="el-upload__tip">支持图片wordpdf</div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -336,12 +337,12 @@ export default {
keyWords: '', keyWords: '',
formData: { formData: {
serviceCategoryId: '',//id serviceCategoryKey: '',//id
serviceProjectId: '',//id serviceProjectId: '',//id
serviceOrgId: '',//id serviceOrgId: '',//id
serviceScope: [],// serviceScope: [],//
principalName: '',//() principalName: '',//()
principalConcat: '',// principalContact: '',//
serviceTimeStart: '',//yyyy-MM-dd serviceTimeStart: '',//yyyy-MM-dd
serviceTimeEnd: '',//yyyy-MM-dd serviceTimeEnd: '',//yyyy-MM-dd
remark: '',// remark: '',//
@ -354,13 +355,48 @@ export default {
serviceGoal: '',// serviceGoal: '',//
serviceEffect: '',// serviceEffect: '',//
servicePeopleNumber: null,// servicePeopleNumber: null,//
serviceStatus: '',// in_servicecompleted: serviceStatus: 'completed',// in_servicecompleted:
satisfaction: '',//:bad:good:perfect satisfaction: '',//:bad:good:perfect
longitude: '',// longitude: '',//
latitude: '',// latitude: '',//
address: '', address: '',
attachmentList: [],// 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 projectList: [],//list
orgList: [],//list orgList: [],//list
@ -382,22 +418,30 @@ export default {
}, },
watch: { watch: {
// "formData.serviceTimeEnd": function (val) { "formData.serviceTimeEnd": function (val) {
// if (val && val != '') { if (val && val != '') {
// let arrayTemp = val.split(' ') let arrayTemp = val.split(' ')
// this.formData.serviceTimeEnd = arrayTemp[0] this.formData.serviceTimeEnd = arrayTemp[0] + ' 23:59:59'
// } }
// }, },
}, },
components: {}, components: {},
async mounted () { async mounted () {
this.startLoading() this.startLoading()
this.initMap() 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(); this.$refs.ref_form_feedback.resetFields();
await this.loadScopeTree()
this.endLoading() this.endLoading()
this.formData = JSON.parse(JSON.stringify(this.formDataTemp));
this.feedbackFormData = { ...this.formData.feedback }
}, },
@ -408,6 +452,8 @@ export default {
}, },
hancleClickCategray () { hancleClickCategray () {
this.formData.serviceProjectId = ''
this.formData.serviceOrgId = ''
// //
this.loadProjectList() this.loadProjectList()
// //
@ -421,8 +467,8 @@ export default {
// //
loadScopeTree () { loadScopeTree () {
// const url = '/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' // const url = 'http://yapi.elinkservice.cn/mock/245/gov/org/isServiceProject/service/serviceScopeTree'
let params = {} let params = {}
window.app.ajax.post( window.app.ajax.post(
url, url,
@ -450,7 +496,7 @@ export default {
selArray.forEach(element => { selArray.forEach(element => {
let obj = { let obj = {
objectType: element.data.objectType, objectType: element.data.objectType === 'grid' ? 'grid' : element.data.objectType === 'neighborhood' ? 'neighborhood' : 'agency',
objectId: element.data.objectId, objectId: element.data.objectId,
objectName: element.data.objectName, objectName: element.data.objectName,
} }
@ -461,17 +507,17 @@ export default {
// //
async loadProjectList () { async loadProjectList () {
// const url = '/heart/icServiceProject/serviceProjectList' const url = '/heart/icServiceProject/serviceProjectList'
const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/serviceProjectList' // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/serviceProjectList'
let params = { let params = {
isPage: false, isPage: false,
serviceCategory: this.formData.serviceCategoryId, serviceCategoryKey: this.formData.serviceCategoryKey,
} }
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (code === 0) { if (code === 0) {
this.projectList = data.list this.projectList = [...data.list]
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
@ -479,10 +525,10 @@ export default {
// //
async loadOrgList () { async loadOrgList () {
// const url = '/heart/icServiceOrg/selectlist' const url = '/heart/icServiceOrg/selectlist'
const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceOrg/selectlist' // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceOrg/selectlist'
let params = { let params = {
serviceType: this.formData.serviceCategoryId, serviceType: this.formData.serviceCategoryKey,
} }
@ -497,6 +543,15 @@ export default {
async handleComfirm () { async handleComfirm () {
if (this.formType === 'add') {
this.handleAdd()
} else if (this.formType === 'feedback') {
this.handleFeedback()
}
},
async handleAdd () {
this.btnDisable = true this.btnDisable = true
setTimeout(() => { setTimeout(() => {
this.btnDisable = false this.btnDisable = false
@ -531,10 +586,30 @@ export default {
}, },
async addFuwu () { 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) console.log(this.formData)
return false // return false
// const url = '/heart/icServiceProject/service/initiate' const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; //
const url = 'http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/initiate' 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 = { let params = {
...this.formData ...this.formData
@ -550,17 +625,62 @@ export default {
this.$message.error(msg) 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) { beforeUpload (file) {
const array = file.name.split('.') const array = file.name.split('.')
const extension = array[array.length - 1] const extension = array[array.length - 1]
if (extension !== 'xls' const formatarray = ['jpg', 'png', 'jpeg', 'bmp', 'mp4', 'wma', 'm4a', 'mp3', 'doc', 'docx', 'xls', 'xlsx', 'pdf']
&& extension !== 'xlsx'
&& extension !== 'doc' if (formatarray.indexOf(extension) === -1) {
&& extension !== 'docx' this.$message.error('只支持图片、word、pdf')
&& extension !== 'pdf') {
this.$message.error('只能上传word、excel、pdf文件!')
return false return false
} }
@ -579,8 +699,28 @@ export default {
const array = file.name.split('.') const array = file.name.split('.')
const fileType = array[array.length - 1] 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.url = res.data.url
file.type = fileType file.type = fileType
file.attachmentName = file.name
file.attachmentType = file.type
file.attachmentUrl = file.url
this.fileList.push(file) this.fileList.push(file)
console.log(this.fileList) console.log(this.fileList)
} else this.$message.error(res.msg) } else this.$message.error(res.msg)
@ -719,12 +859,12 @@ export default {
resetData () { resetData () {
this.formData = { this.formData = {
serviceCategoryId: '',//id serviceCategoryKey: '',//id
serviceProjectId: '',//id serviceProjectId: '',//id
serviceOrgId: '',//id serviceOrgId: '',//id
serviceScope: [],// serviceScope: [],//
principalName: '',//() principalName: '',//()
principalConcat: '',// principalContact: '',//
serviceTimeStart: '',//yyyy-MM-dd serviceTimeStart: '',//yyyy-MM-dd
serviceTimeEnd: '',//yyyy-MM-dd serviceTimeEnd: '',//yyyy-MM-dd
remark: '',// remark: '',//
@ -737,7 +877,7 @@ export default {
serviceGoal: '',// serviceGoal: '',//
serviceEffect: '',// serviceEffect: '',//
servicePeopleNumber: null,// servicePeopleNumber: null,//
serviceStatus: '',// in_servicecompleted: serviceStatus: 'completed',// in_servicecompleted:
satisfaction: '',//:bad:good:perfect satisfaction: '',//:bad:good:perfect
longitude: '',// longitude: '',//
latitude: '',// latitude: '',//
@ -765,7 +905,7 @@ export default {
dataRule () { dataRule () {
return { return {
serviceCategoryId: [ serviceCategoryKey: [
{ required: true, message: '服务类别不能为空', trigger: 'blur' }, { required: true, message: '服务类别不能为空', trigger: 'blur' },
], ],
serviceProjectId: [ serviceProjectId: [

196
src/views/modules/communityService/fuwujilu/detailForm.vue

@ -11,8 +11,10 @@
<el-form-item label="服务分类" <el-form-item label="服务分类"
label-width="150px" label-width="150px"
prop="serviceCategoryId"> prop="serviceCategoryKey">
<el-select v-model="formData.serviceCategoryId" <span>{{formData.serviceCategoryName}}</span>
<!-- <el-select v-model="formData.serviceCategoryKey"
placeholder="请选择" placeholder="请选择"
clearable clearable
class="item_width_1"> class="item_width_1">
@ -22,14 +24,15 @@
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value">
</el-option> </el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="服务项目" <el-form-item label="服务项目"
prop="serviceProjectId" prop="serviceProjectId"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
<el-select class="item_width_1" <span>{{formData.serviceProjectName}}</span>
<!-- <el-select class="item_width_1"
v-model="formData.serviceProjectId" v-model="formData.serviceProjectId"
placeholder="请选择" placeholder="请选择"
filterable filterable
@ -40,14 +43,15 @@
:label="item.serviceName" :label="item.serviceName"
:value="item.serviceProjectId"> :value="item.serviceProjectId">
</el-option> </el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="服务组织" <el-form-item label="服务组织"
prop="serviceOrgId" prop="serviceOrgId"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
<el-select class="item_width_1" <span>{{formData.serviceOrgName}}</span>
<!-- <el-select class="item_width_1"
v-model="formData.serviceOrgId" v-model="formData.serviceOrgId"
placeholder="请选择" placeholder="请选择"
filterable filterable
@ -57,7 +61,7 @@
:label="item.orgName" :label="item.orgName"
:value="item.icServiceOrgId"> :value="item.icServiceOrgId">
</el-option> </el-option>
</el-select> </el-select> -->
</el-form-item> </el-form-item>
@ -65,14 +69,18 @@
prop="serviceScope" prop="serviceScope"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
<el-cascader class="item_width_1" <div v-for="item in formData.serviceScope"
:key="item.objectId">
<div>{{item.objectName}}</div>
</div>
<!-- <el-cascader class="item_width_1"
ref="myCascader" ref="myCascader"
v-model="scopeIdArray" v-model="scopeIdArray"
:key="iscascaderShow" :key="iscascaderShow"
:options="casOptions" :options="casOptions"
:props="optionProps" :props="optionProps"
:show-all-levels="false" :show-all-levels="false"
@change="handleChangeScope"></el-cascader> @change="handleChangeScope"></el-cascader> -->
</el-form-item> </el-form-item>
<el-form-item label="经办人" <el-form-item label="经办人"
@ -85,12 +93,12 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系方式" <el-form-item label="联系方式"
prop="principalConcat" prop="principalContact"
label-width="150px" label-width="150px"
style="display: block"> style="display: block">
<el-input class="item_width_1" <el-input class="item_width_1"
placeholder="请输入联系人电话" placeholder="请输入联系人电话"
v-model="formData.principalConcat"> v-model="formData.principalContact">
</el-input> </el-input>
</el-form-item> </el-form-item>
@ -128,14 +136,6 @@
placeholder="请输入备注,不超过500字" placeholder="请输入备注,不超过500字"
v-model="formData.remark"></el-input> v-model="formData.remark"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="直接反馈"
prop="remark"
label-width="150px"
style="display: block">
<el-checkbox :label="'是'"
v-model="showFeedback"
@change="handleChangeFeedback"></el-checkbox>
</el-form-item>
</el-form> </el-form>
@ -185,11 +185,10 @@ export default {
} }
return { return {
formType: 'add', // addeditdetail,feedback
btnDisable: false, btnDisable: false,
unitId: '',
keyWords: '', keyWords: '',
formData: { formData: {
unitName: '', unitName: '',
@ -212,7 +211,7 @@ export default {
disabledDate: startDisabledDate disabledDate: startDisabledDate
}, },
categrayArray: [],
projectList: [], projectList: [],
} }
@ -220,75 +219,27 @@ export default {
components: {}, components: {},
mounted () { mounted () {
if (this.serviceRecordId) {// if (this.serviceRecordId) {//
this.loadInfo()
} }
this.initMap() // this.initMap()
console.log('mounted') 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) methods: {
if (code === 0) {
this.serviceList = data
} else {
this.$message.error(msg)
}
},
// //
async loadFormData () { async loadInfo () {
const url = '/heart/icpartyunit/detail' const url = `/heart/icServiceProject/service/detail/${this.serviceRecordId}`
// const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/detail' // const url = 'http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/detail' + this.serviceRecordId
let params = { let params = {}
id: this.unitId
}
const { data, code, msg } = await requestPost(url, params) const { data, code, msg } = await requestPost(url, params)
if (code === 0) { if (code === 0) {
if (!data.serviceMatterList || !Array.isArray(data.serviceMatterList)) {
data.serviceMatterList = []
}
this.formData = { ...data } this.formData = { ...data }
map.setCenter(new TMap.LatLng(this.formData.latitude, this.formData.longitude)) this.formData.serviceRecordId = this.serviceRecordId
this.setMarker(this.formData.latitude, this.formData.longitude)
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
@ -307,16 +258,16 @@ export default {
app.util.validateRule(messageObj) app.util.validateRule(messageObj)
this.btnDisable = false this.btnDisable = false
} else { } else {
this.addUnit() this.editFuwu()
} }
}) })
}, },
async addUnit () { async editFuwu () {
const regPhone = /^1(3|4|5|6|7|8|9)\d{9}$/; // 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.btnDisable = false
this.$message({ this.$message({
type: 'warning', type: 'warning',
@ -325,11 +276,9 @@ export default {
return false; return false;
} }
let url = '/heart/icpartyunit/save' let url = '/heart/icServiceProject/service/update'
// let url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/save" // let url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/update"
// if (this.formType === 'edit') {
// this.formData.id = this.unitId
// }
const { data, code, msg } = await requestPost(url, this.formData) const { data, code, msg } = await requestPost(url, this.formData)
@ -339,8 +288,8 @@ export default {
message: '操作成功' message: '操作成功'
}) })
this.resetData() this.resetData()
this.$emit('dialogOk')
this.btnDisable = false this.$emit('handleOk')
} else { } else {
this.btnDisable = false this.btnDisable = false
this.$message.error(msg) this.$message.error(msg)
@ -467,19 +416,17 @@ export default {
resetData () { resetData () {
this.unitId = ''
this.keyWords = ''
this.formData = { this.formData = {
unitName: '', serviceCategoryKey: '',//id
serviceMatterList: [], serviceProjectId: '',//id
type: '', serviceOrgId: '',//id
contact: '', serviceScope: [],//
contactMobile: '', principalName: '',//()
memberCount: 0, principalContact: '',//
remark: '', //500 serviceTimeStart: '',//yyyy-MM-dd
address: '', // serviceTimeEnd: '',//yyyy-MM-dd
longitude: '', // remark: '',//
latitude: '' //
} }
}, },
// //
@ -502,44 +449,39 @@ export default {
dataRule () { dataRule () {
return { return {
unitName: [ serviceCategoryKey: [
{ required: true, message: '单位名称不能为空', trigger: 'blur' }, { required: true, message: '服务类别不能为空', trigger: 'blur' },
], ],
type: [ serviceProjectId: [
{ required: true, message: '分类不能为空', trigger: 'blur' } { required: true, message: '服务项目不能为空', trigger: 'blur' }
], ],
contact: [ serviceOrgId: [
{ required: true, message: '联系人不能为空', trigger: 'blur' } { required: true, message: '服务组织不能为空', trigger: 'blur' }
],
contactMobile: [
{ required: true, message: '联系电话不能为空', trigger: 'blur' }
], ],
memberCount: [ serviceTimeStart: [
{ required: true, message: '在职党员数不能为空', trigger: 'blur' } { required: true, message: '服务时间不能为空', trigger: 'blur' }
], ],
address: [ serviceScope: [
{ required: true, message: '详细地址不能为空', trigger: 'blur' } { required: true, message: '服务范围不能为空', trigger: 'blur' }
], ],
longitude: [
{ required: true, message: '坐标不能为空', trigger: 'blur' }
]
} }
}, },
}, },
props: { props: {
serviceRecordId: { serviceRecordId: {
type: String, type: String,
required: '' required: true
}, },
formType: { formType: {// addeditdetail,feedback
type: String, type: String,
required: '' required: true
}, },
categrayArray: { categrayArray: {
type: Array, type: Array,
required: true,
default () { default () {
return [] return []
} }
@ -547,18 +489,8 @@ export default {
} }
} }
</script> </script>
<style scoped>
.div_map {
position: relative;
}
.div_searchmap {
z-index: 5000;
position: absolute;
top: 5px;
left: 5px;
}
</style>
<style lang="scss" scoped > <style lang="scss" scoped >
@import "@/assets/scss/modules/visual/communityManageForm.scss"; @import "@/assets/scss/modules/management/form-main.scss";
</style> </style>

98
src/views/modules/communityService/fuwujilu/fuwuList.vue

@ -9,8 +9,8 @@
<div> <div>
<el-form-item label="服务分类" <el-form-item label="服务分类"
prop="serviceCategoryId"> prop="serviceCategoryKey">
<el-select v-model="formData.serviceCategoryId" <el-select v-model="formData.serviceCategoryKey"
placeholder="请选择" placeholder="请选择"
size="small" size="small"
clearable clearable
@ -49,7 +49,7 @@
class="item_width_2" class="item_width_2"
size="small" size="small"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd" value="yyyy-MM-dd"
placeholder="开始时间"> placeholder="开始时间">
</el-date-picker> </el-date-picker>
@ -59,7 +59,7 @@
class="item_width_2 data-tag" class="item_width_2 data-tag"
size="small" size="small"
type="date" type="date"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss"
value="yyyy-MM-dd" value="yyyy-MM-dd"
placeholder="结束时间"> placeholder="结束时间">
</el-date-picker> </el-date-picker>
@ -133,6 +133,7 @@
<el-table-column prop="serviceCategoryName" <el-table-column prop="serviceCategoryName"
align="center" align="center"
width="100"
label="服务类别" label="服务类别"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true">
</el-table-column> </el-table-column>
@ -143,17 +144,17 @@
:show-overflow-tooltip="true"> :show-overflow-tooltip="true">
</el-table-column> </el-table-column>
<el-table-column prop="serviceTimeStart" <el-table-column prop="serviceOrgName"
align="center" align="center"
width="110" min-width="150"
label="服务组织名称" label="服务组织名称"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true">
</el-table-column> </el-table-column>
<el-table-column prop="address" <el-table-column prop="serviceTimeStart"
align="center" align="center"
min-width="210" width="250"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
label="服务时间"> label="服务时间">
<template slot-scope="scope"> <template slot-scope="scope">
@ -167,7 +168,7 @@
label="服务状态" label="服务状态"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{scope.row.serviceStatus==='in_service'?'服务':'已完成'}}</span> <span>{{scope.row.serviceStatus==='in_service'?'进行中':'已完成'}}</span>
</template> </template>
</el-table-column> </el-table-column>
@ -181,7 +182,7 @@
<el-table-column fixed="right" <el-table-column fixed="right"
label="操作" label="操作"
align="center" align="center"
width="100"> width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="handleDetail(scope.row)" <el-button @click="handleDetail(scope.row)"
type="text" type="text"
@ -193,7 +194,7 @@
size="small" size="small"
class="div-table-button--edit">编辑</el-button> class="div-table-button--edit">编辑</el-button>
<el-button v-if="scope.row.serviceStatus==='in_service'" <el-button v-if="scope.row.serviceStatus==='in_service'"
@click="handleFreeBack(scope.row)" @click="handleFeedback(scope.row)"
type="text" type="text"
size="small" size="small"
class="div-table-button--edit">反馈</el-button> class="div-table-button--edit">反馈</el-button>
@ -235,10 +236,12 @@
:categrayArray="categrayArray" :categrayArray="categrayArray"
:statusArray="statusArray" :statusArray="statusArray"
:satisfyArray="satisfyArray" :satisfyArray="satisfyArray"
:serviceRecordId="serviceRecordId"
@handleOk="handleOk" @handleOk="handleOk"
@handleClose="handleClose"></add-form> @handleClose="handleClose"></add-form>
</el-dialog> </el-dialog>
<el-dialog :visible.sync="showDetail" <el-dialog v-if="showDetail"
:visible.sync="showDetail"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:title="detailDiaTitle" :title="detailDiaTitle"
@ -247,7 +250,11 @@
class="dialog-h" class="dialog-h"
@closed="showDetail = false"> @closed="showDetail = false">
<detail-form ref="ref_detail_form" <detail-form ref="ref_detail_form"
:serviceRecordId="serviceRecordId"> :serviceRecordId="serviceRecordId"
:categrayArray="categrayArray"
@handleOk="handleOk"
@handleClose="handleClose"
:formType="formType">
</detail-form> </detail-form>
</el-dialog> </el-dialog>
@ -317,7 +324,7 @@ export default {
], ],
formData: { formData: {
serviceCategoryId: '',//id serviceCategoryKey: '',//id
serviceProjectName: '',// serviceProjectName: '',//
serviceOrgName: '',// serviceOrgName: '',//
serviceTimeStart: '',//yyyy-MM-dd serviceTimeStart: '',//yyyy-MM-dd
@ -355,13 +362,13 @@ export default {
...mapGetters(["clientHeight", "iframeHeight"]), ...mapGetters(["clientHeight", "iframeHeight"]),
}, },
watch: { watch: {
// "formData.serviceTimeEnd": function (val) { "formData.serviceTimeEnd": function (val) {
// if (val && val != '') { if (val && val != '') {
// let arrayTemp = val.split(' ') let arrayTemp = val.split(' ')
// this.formData.serviceTimeEnd = arrayTemp[0] this.formData.serviceTimeEnd = arrayTemp[0] + ' 23:59:59'
// } }
// }, },
}, },
mounted () { mounted () {
console.log(this.$store.state) console.log(this.$store.state)
@ -415,10 +422,10 @@ export default {
}, },
// //
async handleDispose (row) { async handleFeedback (row) {
this.serviceRecordId = row.serviceRecordId this.serviceRecordId = row.serviceRecordId
this.addDiaTitle = '服务反馈' this.addDiaTitle = '服务反馈'
this.formType = 'dispose' this.formType = 'feedback'
this.showAdd = true; this.showAdd = true;
}, },
@ -427,24 +434,48 @@ export default {
this.serviceRecordId = "" this.serviceRecordId = ""
this.formType = '' this.formType = ''
this.showAdd = false; this.showAdd = false
this.getTableData() this.showDetail = false
}, },
handleOk () { handleOk () {
this.handleClose() this.handleClose()
this.pageNo = 1 this.pageNo = 1
this.getTableData()
}, },
handleEditSuccess () {
this.handleClose();
this.getTableData();
},
async handleDel (row) { async handleDel (row) {
this.serviceRecordId = row.serviceRecordId this.serviceRecordId = row.serviceRecordId
const url = "/heart/icServiceProject/service/cancel/" + row.serviceRecordId;
this.$confirm("确认取消服务?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.cancelFuwu()
})
.catch(err => {
if (err == "cancel") {
// this.$message({
// type: "info",
// message: ""
// });
}
});
},
async cancelFuwu () {
const url = `/heart/icServiceProject/service/cancel/${this.serviceRecordId}`;
const { data, code, msg } = await requestPost(url, {}); const { data, code, msg } = await requestPost(url, {});
@ -458,8 +489,8 @@ export default {
}, },
async getTableData () { async getTableData () {
// const url = "/heart/icServiceProject/service/recordList"; const url = "/heart/icServiceProject/service/recordList";
const url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/recordList"; // const url = "http://yapi.elinkservice.cn/mock/245/heart/icServiceProject/service/recordList";
const { pageSize, pageNo, formData } = this; const { pageSize, pageNo, formData } = this;
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
pageSize, pageSize,
@ -541,14 +572,13 @@ export default {
resetSearch () { resetSearch () {
this.formData = { this.formData = {
gridId: '', serviceCategoryKey: '',
serviceCategoryId: '',
serviceProjectName: '', serviceProjectName: '',
serviceOrgName: '', serviceOrgName: '',
mobile: '',
serviceTimeStart: '', serviceTimeStart: '',
serviceTimeEnd: '', serviceTimeEnd: '',
serviceStatus: '', serviceStatus: '',
satisfaction: ''
} }

Loading…
Cancel
Save