diff --git a/src/App.vue b/src/App.vue index 158abd1..8ca7e83 100644 --- a/src/App.vue +++ b/src/App.vue @@ -18,7 +18,7 @@ export default { } .van-dialog__content { - padding: 10px; + padding: 10px 15px; box-sizing: border-box; } diff --git a/src/api/basic.js b/src/api/basic.js new file mode 100644 index 0000000..4314f68 --- /dev/null +++ b/src/api/basic.js @@ -0,0 +1,13 @@ +import api from './index' +import request from '@/utils/request' +export function uploadvariedfile(file) { + var files = new File([file], new Date().getTime() + file.name) + const data = new FormData() + data.append('file', files) + return request({ + url: api.Uploadvariedfile, + hideloading: true, + method: 'post', + data + }) + } \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js index 0751136..726e52b 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -12,7 +12,9 @@ const api = { receiveService: '/governance/service/rcvAndProcess/receive', serviceScopeTree :'/gov/org/icServiceProject/service/serviceScopeTree', ServiceConfirm: '/governance/service/rcvAndProcess/confirm', - ServiceComplete: '/governance/service/rcvAndProcess/complete' + ServiceComplete: '/governance/service/rcvAndProcess/complete', + Uploadvariedfile: '/oss/file/uploadvariedfile', + SearchResis: '/governance/service/rcvAndProcess/searchResis/detail' } export default api diff --git a/src/api/service.js b/src/api/service.js index 46806ec..5d6f56b 100644 --- a/src/api/service.js +++ b/src/api/service.js @@ -80,6 +80,12 @@ export function serviceComplete(data) { data }) } - - +//各种找人详情 +export function getSearchResis(params) { + return request({ + url: api.SearchResis, + method: 'get', + params + }) +} diff --git a/src/assets/css/common.less b/src/assets/css/common.less index d280fe8..53da871 100644 --- a/src/assets/css/common.less +++ b/src/assets/css/common.less @@ -1,3 +1,4 @@ +@import "../fonts/index.css"; .flex { display: flex; } @@ -123,5 +124,18 @@ } .font-bold{ font-weight: bold; +} +.font-pingfangB{ + font-family: pingfang-bold; -} \ No newline at end of file +} +.required{ + position: relative; +} +.required::after{ + content: '*'; + position: absolute; + left: -10px; + top: 0; + color: red; +} diff --git a/src/assets/fonts/index.css b/src/assets/fonts/index.css new file mode 100644 index 0000000..6eaff51 --- /dev/null +++ b/src/assets/fonts/index.css @@ -0,0 +1,17 @@ +@font-face { + font-family: 'pingfang-bold'; + src: url('pingfang-bold.ttf'); + src:url('pingfang-bold.ttf') format('truetype'); + font-weight: normal; + font-style: normal; + font-display: swap; +} +@font-face { + font-family: 'pingfang-ordinary'; + src: url('pingfang-ordinary.ttf'); + src:url('pingfang-ordinary.ttf') format('truetype'); + font-weight: normal; + font-style: normal; + font-display: swap; +} + diff --git a/src/assets/fonts/pingfang-black.ttf b/src/assets/fonts/pingfang-black.ttf new file mode 100644 index 0000000..d030018 Binary files /dev/null and b/src/assets/fonts/pingfang-black.ttf differ diff --git a/src/assets/fonts/pingfang-bold.ttf b/src/assets/fonts/pingfang-bold.ttf new file mode 100644 index 0000000..4f2319d Binary files /dev/null and b/src/assets/fonts/pingfang-bold.ttf differ diff --git a/src/assets/fonts/pingfang-ordinary.ttf b/src/assets/fonts/pingfang-ordinary.ttf new file mode 100644 index 0000000..b31eb2a Binary files /dev/null and b/src/assets/fonts/pingfang-ordinary.ttf differ diff --git a/src/utils/request.js b/src/utils/request.js index 0cdcf52..1ac7920 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -15,6 +15,10 @@ const service = axios.create({ // request拦截器 request interceptor service.interceptors.request.use( config => { + if (!config.hideloading) { + // loading + Tips.loading(config.message) + } config.headers['source'] = process.env.NODE_ENV !== 'production' ? 'dev' : 'prod' config.headers.client = 'web' config.headers.app = 'gov' @@ -23,7 +27,6 @@ service.interceptors.request.use( config.headers['Authorization'] = localStorage.getItem('token') } config.baseURL = config.baseURL + '/' - Tips.loading() return config }, error => { diff --git a/src/views/assistance/card.vue b/src/views/assistance/card.vue index 3b02705..454a48c 100644 --- a/src/views/assistance/card.vue +++ b/src/views/assistance/card.vue @@ -8,7 +8,7 @@ {{ item.categoryName }} -
+
{{ item.title || '--' }}
@@ -30,11 +30,11 @@
-
{{ item.summary }}
+
{{ item.summary||'--' }}
-
+
接单 联系需求人 diff --git a/src/views/assistance/index.vue b/src/views/assistance/index.vue index 9b7ec1f..b00ac6a 100644 --- a/src/views/assistance/index.vue +++ b/src/views/assistance/index.vue @@ -44,6 +44,23 @@ {{ actualServiceStartTime || '服务开始时间' }}{{ actualServiceEndTime || '服务结束时间' }} +

完成情况

+ + 已解决 + 未解决 + +

上传图片

+
+ +
+

评价

+ +

备注

+ + import card from './card.vue' import throttle from 'lodash/debounce' -import { getServiceListRcv, getServiceListProcess, getServiceListCompleted, getCommonalityDetail, getMeasureDetail, getListMyIdentities, receiveService, getServiceScopeTree, serviceConfirm, serviceComplete } from '@/api/service' +import { getServiceListRcv, getServiceListProcess, getServiceListCompleted, getCommonalityDetail, getMeasureDetail, getListMyIdentities, receiveService, getServiceScopeTree, serviceConfirm, serviceComplete,getSearchResis } from '@/api/service' +import { uploadvariedfile } from '@/api/basic' import { Dialog } from 'vant'; export default { @@ -92,7 +110,11 @@ export default { showComplete:false, actualServiceStartTime:null,//服务开始时间 actualServiceEndTime:null,//服务结束时间 - selfObj:{} + selfObj:{}, + rdFinishResult: null,//是否解决 + rdScore: 5,//评分 + fileList: [],//图片上传 + rdFinishDesc: null,//备注 }; }, created() { @@ -108,12 +130,27 @@ export default { }) }, methods: { + afterRead(file) { + file.status = 'uploading' + file.message = '上传中...' + uploadvariedfile(file.file) + .then(res => { + file.status = '' + file.message = '上传成功' + file.url = res.data.url + console.log(this.fileList) + }) + .catch(() => { + file.status = 'failed' + file.message = '上传失败' + }) + }, handelServiceComplete(item) { - if(item.source === 1){ + if(item.source != 4){ Dialog.confirm({ message: `确定已完成“${item.title}”服务吗?`, }).then( () => { - this.serviceComplete(item.source,item.id) + this.serviceComplete(item) }).catch(() => { }) }else if(item.source === 4){ @@ -122,7 +159,6 @@ export default { } }, onBeforeClose(action, done) { - // 点击了确定按钮 if (action === "confirm") { if (this.selfObj.source === 4) { if (!this.actualServiceStartTime) { @@ -133,7 +169,25 @@ export default { this.$tips.warning('请选择服务结束时间') return done(false) } - this.serviceComplete(this.selfObj.source, this.selfObj.id, this.actualServiceStartTime, this.actualServiceEndTime) + if (!this.rdScore) { + this.$tips.warning('请进行评价') + return done(false) + } + if (!this.rdFinishResult) { + this.$tips.warning('请选择完成情况') + return done(false) + } + let parm = { + source: this.selfObj.source, + id: this.selfObj.id, + actualServiceStartTime: this.actualServiceStartTime, + actualServiceEndTime: this.actualServiceEndTime, + rdScore: this.rdScore, + rdFinishResult: this.rdFinishResult, + rdFinishAttachments: this.fileList.map(item => ({ originFileName: item.file.name, type: item.file.type, format: 'image', url: item.url })), + rdFinishDesc: this.rdFinishDesc + } + this.serviceComplete(parm) done(true) } @@ -142,23 +196,21 @@ export default { done(true); } }, - async serviceComplete(source,id,actualServiceStartTime,actualServiceEndTime){ - let { code } = await serviceComplete({ source, id, actualServiceStartTime, actualServiceEndTime}) - if (code === 0) { - this.$toast.success('服务完成') - this.pageNo = 1; - this.requestFlag = true; - this.list = []; - this.getTableData(); - } + async serviceComplete(parm) { + let { code } = await serviceComplete(parm) + if (code === 0) { + this.$tips.success('服务完成') + } }, async handelTodetail(item) { this.serverId = item.id; if (item.source === 4) { await this.getMeasureDetail() - } else { + } else if(item.source === 1){ await this.getCommonalityDetail() + }else { + await this.getSearchResis() } this.$router.push({ name: 'assistanceDetail', params: { detail: this.formData, selfObj: item } }) }, @@ -205,7 +257,7 @@ export default { console.log(parm); let { data, code, msg } = await receiveService(parm) if (code === 0) { - this.$toast.success('接单成功') + this.$tips.success('接单成功') this.showRole = false; this.showScope = false; this.pageNo = 1; @@ -233,7 +285,8 @@ export default { async handelServiceConfirm(val) { let { data, code, msg } = await serviceConfirm({ id: val.id }) if (code === 0) { - this.$toast.success('确认成功') + this.$tips.success('确认成功') + this.requestFlag = true; this.pageNo = 1; this.list = []; this.getTableData(); @@ -257,6 +310,12 @@ export default { this.formData = data; } }, + async getSearchResis() { + let { data, code, msg } = await getSearchResis({ id: this.serverId }) + if (code === 0) { + this.formData = data; + } + }, async getServiceScopeTree() { let { data, code, msg } = await getServiceScopeTree({ id: this.serverId }) if (code === 0) { diff --git a/src/views/assistanceDetail/index.vue b/src/views/assistanceDetail/index.vue index b38b7c0..15164a8 100644 --- a/src/views/assistanceDetail/index.vue +++ b/src/views/assistanceDetail/index.vue @@ -2,7 +2,7 @@
-
+
{{ this.detail.title || '--' }}
@@ -10,11 +10,13 @@ {{ detail.serviceTargetName || '--' }} {{ detail.serviceTargetMobile }}
-
{{ detail.serviceTargetAddress }} +
{{ + detail.serviceTargetAddress }}
-
{{ detail.serviceTargetAddresses.join(',') }} +
{{ + detail.serviceTargetAddresses.join(',') }}
-
+
{{ detail.serviceStartTime || '--' }} @@ -22,8 +24,8 @@
-
- {{ detail.serviceTimeStart || '--' }} 至 {{detail.serviceTimeEnd || '--'}} +
+ {{ detail.serviceTimeStart || '--' }} 至 {{ detail.serviceTimeEnd || '--' }}
@@ -37,13 +39,23 @@
- + - - - - + v-if="selfObj.source == 4" /> + + + + + + + +
@@ -51,9 +63,9 @@ 接单 + v-if="selfObj.processStatus === 10 && selfObj.source !== 4" @click="showScope = true">接单 完成服务 -

服务开始时间

+

服务开始时间

{{ actualServiceStartTime || '服务开始时间' }}{{ actualServiceEndTime || '服务结束时间' }} -

完成情况

+

完成情况

已解决 未解决 -

评价

- +

上传图片

+
+ +
+

评价

+ +

备注

+ +
import { receiveService, getListMyIdentities, getServiceScopeTree, serviceComplete, serviceConfirm } from '@/api/service' +import { uploadvariedfile } from '@/api/basic' import { Dialog } from 'vant'; export default { data() { @@ -132,9 +149,11 @@ export default { showRole: false, actualServiceStartTime: null,//实际完成时间 actualServiceEndTime: null,//实际完成时间 - showComplete: false, - rdFinishResult:null, - rdScore:5 + showComplete: false,//完成弹框 + rdFinishResult: null,//是否解决 + rdScore: 5,//评分 + fileList: [],//图片上传 + rdFinishDesc: null,//备注 }; }, created() { @@ -149,6 +168,21 @@ export default { this.sourceName = this.typeList[this.source] }, methods: { + afterRead(file) { + file.status = 'uploading' + file.message = '上传中...' + uploadvariedfile(file.file) + .then(res => { + file.status = '' + file.message = '上传成功' + file.url = res.data.url + console.log(this.fileList) + }) + .catch(() => { + file.status = 'failed' + file.message = '上传失败' + }) + }, async confirmService() { let { data, code, msg } = await serviceConfirm({ id: this.id }) if (code === 0) { @@ -166,10 +200,27 @@ export default { this.$tips.warning('请选择服务结束时间') return done(false) } - this.serviceComplete(this.selfObj.source, this.selfObj.id, this.actualServiceStartTime, this.actualServiceEndTime) + if (!this.rdScore) { + this.$tips.warning('请进行评价') + return done(false) + } + if (!this.rdFinishResult) { + this.$tips.warning('请选择完成情况') + return done(false) + } + let parm = { + source: this.selfObj.source, + id: this.selfObj.id, + actualServiceStartTime: this.actualServiceStartTime, + actualServiceEndTime: this.actualServiceEndTime, + rdScore: this.rdScore, + rdFinishResult: this.rdFinishResult, + rdFinishAttachments: this.fileList.map(item => ({ originFileName: item.file.name, type: item.file.type, format: 'image', url: item.url })), + rdFinishDesc: this.rdFinishDesc + } + this.serviceComplete(parm) done(true) } - } // 点击了取消按钮 else { @@ -178,19 +229,19 @@ export default { }, handelClickComplete() { - if (this.selfObj.source === 1) { + if (this.selfObj.source != 4) { Dialog.confirm({ - message: `确定已完成${this.detail.title}服务吗?`, + message: `确定已完成“${this.detail.title}”服务吗?`, }).then(() => { - this.serviceComplete(this.selfObj.source, this.selfObj.id) + this.serviceComplete(this.selfObj) }).catch(() => { }); } }, - async serviceComplete(source, id, actualServiceStartTime, actualServiceEndTime) { - let { code } = await serviceComplete({ source, id, actualServiceStartTime, actualServiceEndTime }) + async serviceComplete(parm) { + let { code } = await serviceComplete(parm) if (code === 0) { - this.$toast.success('服务完成') + this.$tips.success('服务完成') this.$router.go(-1) } }, @@ -222,7 +273,7 @@ export default { console.log(parm); let { data, code, msg } = await receiveService(parm) if (code === 0) { - this.$toast.success('接单成功') + this.$tips.success('接单成功') this.showRole = false; this.showScope = false; this.$router.back() diff --git a/src/views/mine/changePassword.vue b/src/views/mine/changePassword.vue index 61d3991..d5fc717 100644 --- a/src/views/mine/changePassword.vue +++ b/src/views/mine/changePassword.vue @@ -106,7 +106,7 @@ export default { let { data, code, msg } = response; if(code === 0){ console.log('data111'); - this.$toast('修改成功!请重新登录'); + this.$tips('修改成功!请重新登录'); this.$router.replace({name:'login'}) } }).catch(error => {