|
|
@@ -0,0 +1,872 @@
|
|
|
+<template>
|
|
|
+ <van-overlay class="backgroundSty" z-index="2004" :show="showPop">
|
|
|
+ <div style="height:5%">
|
|
|
+ <van-sticky>
|
|
|
+ <van-nav-bar :title="'沟通记录 ' + (typeValue == '3'? '编制' : typeValue == '4' ? '修改': typeValue == '1' ? '详情' : '')"
|
|
|
+ :left-text="'x'" left-arrow
|
|
|
+ :right-text="typeValue == '4'?'退回原因':''"
|
|
|
+ @click-left="closePop()" @click-right="toCheckMode()" />
|
|
|
+ </van-sticky>
|
|
|
+ </div>
|
|
|
+ <div class="scrollView">
|
|
|
+ <van-form @submit="onSubmit">
|
|
|
+ <van-field label="表单编号:" placeholder="请输入表单编号" v-model="form.biaoDanBianHao" label-width = "6em" input-align="left" readonly />
|
|
|
+ <van-field
|
|
|
+ v-model="form.keHuLianXiRen"
|
|
|
+ required
|
|
|
+ label="用户姓名:"
|
|
|
+ placeholder="请输入用户姓名"
|
|
|
+ label-width = "6em"
|
|
|
+ clearable
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="form.keHuDanWeiMin"
|
|
|
+ required
|
|
|
+ label="用户单位:"
|
|
|
+ placeholder="请输入用户单位"
|
|
|
+ label-width = "6em"
|
|
|
+ clearable
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="form.lianXiDianHua"
|
|
|
+ required
|
|
|
+ label="联系电话:"
|
|
|
+ placeholder="请输入联系电话"
|
|
|
+ label-width = "6em"
|
|
|
+ clearable
|
|
|
+ :rules="[{ validator:$common.getRequest.checkPhone, message: '手机号格式错误' }]"
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="form.yongHuYouXiang"
|
|
|
+ required
|
|
|
+ label="用户邮箱:"
|
|
|
+ placeholder="请输入用户邮箱"
|
|
|
+ label-width = "6em"
|
|
|
+ clearable
|
|
|
+ :rules="[{ validator:$common.getRequest.checkEmail, message: '邮箱格式错误' }]"
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ label="沟通类型:"
|
|
|
+ placeholder="请选择沟通类型"
|
|
|
+ label-width = "6em"
|
|
|
+ :value="form.gouTongLeiXing"
|
|
|
+ @click="sheetShow = true"
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-popup v-model="sheetShow" position="bottom">
|
|
|
+ <van-picker
|
|
|
+ show-toolbar
|
|
|
+ :columns="list"
|
|
|
+ @confirm="actionSheetCallback"
|
|
|
+ @cancel="sheetShow = false"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ <van-field
|
|
|
+ v-if="form.gouTongLeiXing == '其它'"
|
|
|
+ v-model="form.qiTa"
|
|
|
+ required
|
|
|
+ label="其他类型:"
|
|
|
+ placeholder="请输入其他类型"
|
|
|
+ label-width = "6em"
|
|
|
+ clearable
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ label="沟通时间:"
|
|
|
+ placeholder="请选择沟通时间"
|
|
|
+ label-width = "6em"
|
|
|
+ :value="form.gouTongRiQi"
|
|
|
+ @click="gouTongRiQiClick(form.gouTongRiQi)"
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-popup v-model="timeShow" position="bottom">
|
|
|
+ <van-datetime-picker
|
|
|
+ v-model="xuanzeTime"
|
|
|
+ type="datetime"
|
|
|
+ @confirm="timeShowCallback"
|
|
|
+ @cancel="timeShow = false"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ <van-field
|
|
|
+ v-model="form.weiTuoDanHao"
|
|
|
+ required
|
|
|
+ autosize
|
|
|
+ type="textarea"
|
|
|
+ label="沟通事项:"
|
|
|
+ placeholder="请输入沟通事项"
|
|
|
+ label-width = "6em"
|
|
|
+ clearable
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ </van-form>
|
|
|
+ <van-cell-group>
|
|
|
+ <div class="verticalLine" style="width:6em;padding: 1em 0;">沟通内容</div>
|
|
|
+ <van-field
|
|
|
+ v-model="form.gouTongNeiRong"
|
|
|
+ autosize
|
|
|
+ type="textarea"
|
|
|
+ label=""
|
|
|
+ placeholder="意见和建议"
|
|
|
+ label-width = "0"
|
|
|
+ clearable
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+
|
|
|
+ <ibps-uploader
|
|
|
+ v-model="form.fuJian"
|
|
|
+ label="附件"
|
|
|
+ download
|
|
|
+ placeholder="请上传附件"
|
|
|
+ :have-padding="false"
|
|
|
+ multiple
|
|
|
+ clearable
|
|
|
+ :readonly="typeValue != 3 && typeValue != 4 ? true: false"
|
|
|
+ />
|
|
|
+ <ibps-signature
|
|
|
+ v-if="form.leiXing == '2'"
|
|
|
+ v-model="form.keHu"
|
|
|
+ label="用户确认"
|
|
|
+ class="yonghu"
|
|
|
+ placeholder=" "
|
|
|
+ :readonly="typeValue == 3 && typeValue == 4 ? true: false"
|
|
|
+ />
|
|
|
+ <van-cell-group v-if="typeValue != 3 && typeValue != 4">
|
|
|
+ <div class="verticalLine" style="width:8em;padding: 1em 0;">沟通内容确定</div>
|
|
|
+ <van-field
|
|
|
+ v-model="form.gouTongQueDingNei"
|
|
|
+ autosize
|
|
|
+ type="textarea"
|
|
|
+ label=""
|
|
|
+ placeholder="意见和建议"
|
|
|
+ label-width = "0"
|
|
|
+ clearable
|
|
|
+ :readonly="typeValue != 2"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ <ibps-signature
|
|
|
+ v-if="form.leiXing == '1'"
|
|
|
+ v-model="form.keHu"
|
|
|
+ label="沟通确认"
|
|
|
+ class="yonghu"
|
|
|
+ placeholder=" "
|
|
|
+ :readonly="typeValue != 2"
|
|
|
+ />
|
|
|
+
|
|
|
+ <div class="padding flex flex-direction" v-if="typeValue == '3'">
|
|
|
+ <van-button type="success" class="btn btn-back-color" @click="onSubmit">提交
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ <div class="padding flex flex-direction" v-if="typeValue == '2'">
|
|
|
+ <van-button type="success" class="btn btn-back-color" @click="onAgree('已完成','同意','确定')">同意
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ <div class="padding flex flex-direction" v-if="typeValue == '4'">
|
|
|
+ <van-button type="success" class="btn btn-back-color" @click="onAgree('已编制','重新提交','提交')">修改
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </van-overlay>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ import random from '@/mixins/random'
|
|
|
+ import bpmnStatus from '@/mixins/bpmnStatus'
|
|
|
+
|
|
|
+ import ApprovePopup from '@/business/platform/bpmn/form-ext/approve'
|
|
|
+
|
|
|
+ import IbpsMoreSearch from '@/components/ibps-more-search'
|
|
|
+ import IbpsAvatar from '@/components/ibps-avatar'
|
|
|
+ import IbpsToolbar from '@/components/ibps-toolbar'
|
|
|
+ import IbpsListResultPage from '@/components/ibps-list-result-page'
|
|
|
+ import IbpsTypeTree from '@/business/platform/cat/type/tree'
|
|
|
+ import IbpsBpmnDefinition from '@/business/platform/bpmn/definition/field'
|
|
|
+ import IbpsUploader from '@/business/platform/file/uploader'
|
|
|
+
|
|
|
+ import IbpsBpmnFormrenderDialog from '@/business/platform/bpmn/form/dialog'
|
|
|
+
|
|
|
+ import { getNextIdByAlias, findFormJsonByBo, snapshot } from '@/api/platform/form/transfer'
|
|
|
+ import { agree } from '@/api/platform/bpmn/bpmTask'
|
|
|
+
|
|
|
+
|
|
|
+ export default {
|
|
|
+ components: {
|
|
|
+ IbpsMoreSearch,
|
|
|
+ IbpsAvatar,
|
|
|
+ IbpsListResultPage,
|
|
|
+ IbpsTypeTree,
|
|
|
+ IbpsBpmnDefinition,
|
|
|
+ IbpsToolbar,
|
|
|
+ ApprovePopup,
|
|
|
+ IbpsBpmnFormrenderDialog,
|
|
|
+ IbpsUploader
|
|
|
+ },
|
|
|
+ mixins: [random, bpmnStatus],
|
|
|
+ props: {
|
|
|
+ showPop:{
|
|
|
+ type: Boolean,
|
|
|
+ default: false
|
|
|
+ },
|
|
|
+ typeValue:{
|
|
|
+ type: String,
|
|
|
+ default: '3'
|
|
|
+ },
|
|
|
+ id:{
|
|
|
+ type: String,
|
|
|
+ default: ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ const useId = this.$store.getters.userId
|
|
|
+ return {
|
|
|
+ useId,
|
|
|
+ show: this.showPop,
|
|
|
+ // typeValue: '3',
|
|
|
+ sheetShow: false,
|
|
|
+ taskId: '',
|
|
|
+ form: {
|
|
|
+ xuanZeKeHu: '',
|
|
|
+ biaoDanBianHao: '',
|
|
|
+ buMenName: '',
|
|
|
+ keHuDanWeiMin: '',
|
|
|
+ keHuLianXiRen: '',
|
|
|
+ weiTuoDanHao: '',
|
|
|
+ lianXiDianHua: '',
|
|
|
+ yangPinMingCheng: '',
|
|
|
+ yangPinBianHao: '',
|
|
|
+ yangPinLeiXing: '',
|
|
|
+ baoGaoBianHao: '',
|
|
|
+ gouTongLeiXing: '',
|
|
|
+ gouTongNeiRong: '',
|
|
|
+ keHu: '',
|
|
|
+ gouTongQueDingNei: '',
|
|
|
+ leiXing: '2',
|
|
|
+ yongHuYouXiang: '',
|
|
|
+ xuanZeKeHu: '',
|
|
|
+ qiTa: ''
|
|
|
+ },
|
|
|
+ fuJianShangChuanArray: [],
|
|
|
+ popupShow: false,
|
|
|
+ list: [{
|
|
|
+ text: '投诉'
|
|
|
+ }, {
|
|
|
+ text: '检验项目'
|
|
|
+ }, {
|
|
|
+ text: '危机值报告'
|
|
|
+ }, {
|
|
|
+ text: '口头报告结果'
|
|
|
+ }, {
|
|
|
+ text: '延迟报告'
|
|
|
+ }, {
|
|
|
+ text: '其它'
|
|
|
+ }],
|
|
|
+ kehuXinXinList: [],
|
|
|
+
|
|
|
+ weiTuoList: [],
|
|
|
+ bianZhiRenName: '',
|
|
|
+ queDingRenName: '',
|
|
|
+ backShow: false,
|
|
|
+ option: '',
|
|
|
+ content: '',
|
|
|
+ timeShow: false,
|
|
|
+ params: {
|
|
|
+ year: true,
|
|
|
+ month: true,
|
|
|
+ day: true,
|
|
|
+ hour: true,
|
|
|
+ minute: true,
|
|
|
+ second: false
|
|
|
+ },
|
|
|
+ level: null,
|
|
|
+ mainPosition: {
|
|
|
+ id: ''
|
|
|
+ },
|
|
|
+ xuanzeTime: null,
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch:{
|
|
|
+ showPop:{
|
|
|
+ handler: function (val, oldVal) {
|
|
|
+ if(val === true){
|
|
|
+ this.form = {
|
|
|
+ xuanZeKeHu: '',
|
|
|
+ biaoDanBianHao: '',
|
|
|
+ buMenName: '',
|
|
|
+ keHuDanWeiMin: '',
|
|
|
+ keHuLianXiRen: '',
|
|
|
+ weiTuoDanHao: '',
|
|
|
+ lianXiDianHua: '',
|
|
|
+ yangPinMingCheng: '',
|
|
|
+ yangPinBianHao: '',
|
|
|
+ yangPinLeiXing: '',
|
|
|
+ baoGaoBianHao: '',
|
|
|
+ gouTongLeiXing: '',
|
|
|
+ gouTongNeiRong: '',
|
|
|
+ keHu: '',
|
|
|
+ gouTongQueDingNei: '',
|
|
|
+ leiXing: '2',
|
|
|
+ yongHuYouXiang: '',
|
|
|
+ xuanZeKeHu: '',
|
|
|
+ qiTa: ''
|
|
|
+ }
|
|
|
+ this.getKehu()
|
|
|
+ this.level = this.$store.getters.level
|
|
|
+ let mainPosition = this.$store.getters.mainPosition
|
|
|
+ this.mainPosition = mainPosition
|
|
|
+ if (this.id && this.id!='') {
|
|
|
+ // this.id = this.id
|
|
|
+ this.getDe(this.id)
|
|
|
+ } else {
|
|
|
+ this.getGtbh()
|
|
|
+ }
|
|
|
+ // if (this.typeValue) {
|
|
|
+ // this.typeValue = this.typeValue
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ rightText() {
|
|
|
+ return this.checkMode ? this.$t('common.button.cancel') : this.$t('common.button.manage')
|
|
|
+ },
|
|
|
+ selectedIds() {
|
|
|
+ return this.checkedIds.join(',')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ closePop() {
|
|
|
+ this.$emit('updataSet',false)
|
|
|
+ },
|
|
|
+ toCheckMode() {
|
|
|
+ if (this.$utils.isEmpty(this.listData)) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.checkMode) {
|
|
|
+ this.show = true
|
|
|
+ this.checkedIds = []
|
|
|
+ }
|
|
|
+ this.checkMode = !this.checkMode
|
|
|
+ },
|
|
|
+ actionSheetCallback(e) {
|
|
|
+ this.form.gouTongLeiXing = e.text
|
|
|
+ this.sheetShow = false
|
|
|
+ },
|
|
|
+ timeShowCallback(e) {
|
|
|
+ const nowDate = new Date((e).getTime() + 8 * 60 * 60 * 1000)
|
|
|
+ const time = nowDate.toJSON().split('T').join(' ').substr(0, 16)
|
|
|
+ this.form.gouTongRiQi = time
|
|
|
+ this.timeShow = false
|
|
|
+ },
|
|
|
+ gouTongRiQiClick(e){
|
|
|
+ this.timeShow = true
|
|
|
+ },
|
|
|
+ // 获取上传状态
|
|
|
+ select(file) {
|
|
|
+ this.$uploades.selectUpload(file).then(res => {
|
|
|
+ res.forEach(item => {
|
|
|
+ this.fuJianShangChuanArray.push(item)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除
|
|
|
+ deleteMe(id) {
|
|
|
+ this.fuJianShangChuanArray = this.fuJianShangChuanArray.filter(item => item.id !== id)
|
|
|
+ },
|
|
|
+ // 获取上传进度
|
|
|
+ progress(e) {},
|
|
|
+ // 上传成功
|
|
|
+ success(file) {},
|
|
|
+ // 上传失败
|
|
|
+ fail(e) {},
|
|
|
+ //弹出框显示
|
|
|
+ qianming(index) {
|
|
|
+ this.popupShow = true
|
|
|
+ },
|
|
|
+ //清除签名
|
|
|
+ deqianming(index) {
|
|
|
+ this.form.keHu = ''
|
|
|
+ },
|
|
|
+ //保存签名
|
|
|
+ save(val) {
|
|
|
+ this.form.keHu = val
|
|
|
+ this.popupShow = false
|
|
|
+ },
|
|
|
+ //清除签名
|
|
|
+ clear(val) {
|
|
|
+ this.form.keHu = ''
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 关闭签名弹窗
|
|
|
+ */
|
|
|
+ close() {
|
|
|
+ this.popupShow = false
|
|
|
+ },
|
|
|
+
|
|
|
+ //获取样品编号
|
|
|
+ getGtbh(callback) {
|
|
|
+ let smsParams = {
|
|
|
+ alias: "gtbh"
|
|
|
+ };
|
|
|
+ let this_ = this
|
|
|
+ getNextIdByAlias(smsParams).then(res => {
|
|
|
+ if (res.state == 200) {
|
|
|
+ const data = res.data
|
|
|
+ this.form.biaoDanBianHao = data
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getKehu() {
|
|
|
+ let info = this.$store.getters.userInfo
|
|
|
+ if (info) {
|
|
|
+ this.form.keHuDanWeiMin = info.user.qq
|
|
|
+ this.form.lianXiDianHua = info.user.mobile
|
|
|
+ // this.form.keHuDanWeiMingChe = info.user.id
|
|
|
+ this.form.keHuLianXiRen = info.user.fullname
|
|
|
+ this.form.gouTongLeiXing = '投诉'
|
|
|
+ this.form.gouTongRiQi = this.$methCommon.time(16)
|
|
|
+ this.xuanzeTime = new Date()
|
|
|
+ this.form.yongHuYouXiang = info.user.email
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getDe(id) {
|
|
|
+ let sql =
|
|
|
+ `select * from t_khgtjlb where id_ = ${id}`
|
|
|
+
|
|
|
+ this.$common.request('sql', sql).then(res => {
|
|
|
+ if (res.state == 200) {
|
|
|
+ const data = res.variables.data[0]
|
|
|
+ this.form = {
|
|
|
+ id: data.id_,
|
|
|
+ xuanZeKeHu: data.xuan_ze_ke_hu_,
|
|
|
+ biaoDanBianHao: data.biao_dan_bian_hao,
|
|
|
+ buMenName: data.xuan_ze_ke_hu_,
|
|
|
+ keHuDanWeiMin: data.ke_hu_dan_wei_min,
|
|
|
+ keHuLianXiRen: data.ke_hu_lian_xi_ren,
|
|
|
+ weiTuoDanHao: data.wei_tuo_dan_hao_,
|
|
|
+ lianXiDianHua: data.lian_xi_dian_hua_,
|
|
|
+ yangPinMingCheng: data.yang_pin_ming_che,
|
|
|
+ yangPinBianHao: data.yang_pin_bian_hao,
|
|
|
+ yangPinLeiXing: data.yang_pin_lei_xing,
|
|
|
+ baoGaoBianHao: data.bao_gao_bian_hao_,
|
|
|
+ gouTongLeiXing: data.gou_tong_lei_xing,
|
|
|
+ gouTongNeiRong: data.gou_tong_nei_rong,
|
|
|
+ keHu: data.ke_hu_,
|
|
|
+ gouTongQueDingNei: data.gou_tong_que_ding,
|
|
|
+ leiXing: data.lei_xing_,
|
|
|
+ bianZhiShiJian: data.bian_zhi_shi_jian,
|
|
|
+ gouTongRiQi: data.gou_tong_ri_qi_,
|
|
|
+ yongHuYouXiang: data.yong_hu_you_xiang,
|
|
|
+ gouTongRenYuan: data.gou_tong_ren_yuan,
|
|
|
+ xuanZeKeHu: data.xuan_ze_ke_hu_,
|
|
|
+ fuJian: data.fu_jian_
|
|
|
+ }
|
|
|
+ if (this.typeValue == '2' || this.typeValue == '4') {
|
|
|
+ this.getTaskId(data.id_)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getFileList(ids) {
|
|
|
+ this.$uploades.getFilesList(ids, this).then(res => {
|
|
|
+ this.fuJianShangChuanArray = res
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onSubmit() {
|
|
|
+ if (!this.getYanZheng()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let tmpArray = []
|
|
|
+ this.fuJianShangChuanArray.forEach((item) => {
|
|
|
+ tmpArray.push(item.id)
|
|
|
+ })
|
|
|
+
|
|
|
+ let info = this.$store.getters.userInfo
|
|
|
+ let useId = info.user.id
|
|
|
+ let detpId = info.employee.positions
|
|
|
+ let para = {
|
|
|
+ "parameters": [{
|
|
|
+ "key": "defId",
|
|
|
+ "value": "1056942070293331968"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "key": "version",
|
|
|
+ "value": "0"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "key": "data",
|
|
|
+ "value": ""
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ this.form.fuJian = tmpArray.join(",")
|
|
|
+ this.form.bianZhiRen = useId
|
|
|
+ this.form.bianZhiShiJian = this.$methCommon.time(16)
|
|
|
+ // this.form.bianZhiBuMen = this.mainPosition.id || detpId
|
|
|
+ this.form.bianZhiBuMen = detpId
|
|
|
+
|
|
|
+ this.form.shiFouGuoShen = "已编制"
|
|
|
+ this.form.diDian = this.level.second
|
|
|
+ this.form.xuanZeKeHu = useId
|
|
|
+ para.parameters[2].value = JSON.stringify(this.form)
|
|
|
+ let that = this
|
|
|
+
|
|
|
+ findFormJsonByBo(para).then(res => {
|
|
|
+ if (res.data.state == 200) {
|
|
|
+ this.$toast.success('提交成功!')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getPageA()
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ }).catch((err) => {
|
|
|
+
|
|
|
+ });
|
|
|
+ },
|
|
|
+ onAgree(shiFouGuoShen, opinion, type) {
|
|
|
+ if (this.typeValue !== '2' && !this.getYanZheng()) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let info = this.$store.getters.userInfo
|
|
|
+ let useId = info.user.id
|
|
|
+ let detpId = info.employee.positions
|
|
|
+ let tmpArray = []
|
|
|
+ this.fuJianShangChuanArray.forEach((item) => {
|
|
|
+ tmpArray.push(item.id)
|
|
|
+ })
|
|
|
+ this.form.fuJian = tmpArray.join(",")
|
|
|
+ this.form.shiFouGuoShen = shiFouGuoShen
|
|
|
+ this.form.diDian = this.level.second
|
|
|
+ this.form.shiFouGuoShen = shiFouGuoShen
|
|
|
+ let editData = {
|
|
|
+ data: JSON.stringify(this.form),
|
|
|
+ opinion: opinion,
|
|
|
+ taskId: this.taskId
|
|
|
+ }
|
|
|
+ agree(editData).then(res => {
|
|
|
+ if (res.state == 200) {
|
|
|
+
|
|
|
+ if (this.typeValue == '2') {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getPath(this.id)
|
|
|
+ }, 1000)
|
|
|
+ } else {
|
|
|
+ this.$toast.success(type + '成功!')
|
|
|
+ this.getPageA()
|
|
|
+ }
|
|
|
+ this.$toast.success(type + '成功!')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getPageA()
|
|
|
+ }, 1000);
|
|
|
+
|
|
|
+ } else {
|
|
|
+ this.$toast.fail(type+'异常!')
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ //生成快照
|
|
|
+ getPath(id) {
|
|
|
+ let org = this.level.first
|
|
|
+
|
|
|
+ let url = this.$common.getRequest.downloadReport('咨询活动/客户沟通记录表.rpx', `id_=${id}&org_=${org}`)
|
|
|
+ let data = {
|
|
|
+ url,
|
|
|
+ name: '用户沟通记录表' + this.$methCommon.time(19),
|
|
|
+ type: 'pdf'
|
|
|
+ }
|
|
|
+ snapshot(data).then(res => {
|
|
|
+ let result = res.data
|
|
|
+ if (result.state == 200) {
|
|
|
+ this.updateData(id, result.data.id)
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+ updateData(id, fileId) {
|
|
|
+ let pp = {
|
|
|
+ updList: [{
|
|
|
+ where: {
|
|
|
+ id_: id
|
|
|
+ },
|
|
|
+ param: {
|
|
|
+ kuai_zhao_: fileId,
|
|
|
+ shi_fou_guo_shen_: '已完成'
|
|
|
+ }
|
|
|
+ }],
|
|
|
+ tableName: "t_khgtjlb"
|
|
|
+ }
|
|
|
+ let data = this.$sig(pp)
|
|
|
+ this.$common.request('update', data).then(res => {
|
|
|
+ this.$methCommon.getPrompt('提交成功', 'success')
|
|
|
+ setTimeout(() => {
|
|
|
+ this.getPageA()
|
|
|
+ }, 1000);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getYanZheng() {
|
|
|
+ let suList = ['keHuLianXiRen', 'keHuDanWeiMin', 'lianXiDianHua', 'yongHuYouXiang', 'weiTuoDanHao', 'gouTongNeiRong']
|
|
|
+ let suListName = ['用户姓名', '用户单位', '联系电话', '用户邮箱', '沟通事项', '沟通内容']
|
|
|
+ for (let item in suList) {
|
|
|
+ if (!this.form[suList[item]]) {
|
|
|
+ this.$toast({
|
|
|
+ duration: 2000, // 持续展示 toast
|
|
|
+ message: '请输入' + suListName[item]
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ let selList = ['gouTongRiQi', 'gouTongLeiXing']
|
|
|
+ let selListName = ['沟通时间', '沟通类型']
|
|
|
+ for (let item in selList) {
|
|
|
+ if (!this.form[selList[item]]) {
|
|
|
+ this.$toast({
|
|
|
+ duration: 2000, // 持续展示 toast
|
|
|
+ message: '请选择' + selListName[item]
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!this.form.keHu) {
|
|
|
+ this.$toast({
|
|
|
+ duration: 2000, // 持续展示 toast
|
|
|
+ message: '请填写签名'
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.form.gouTongLeiXing == '其它' && !this.form.qiTa) {
|
|
|
+ this.$toast({
|
|
|
+ duration: 2000, // 持续展示 toast
|
|
|
+ message: '请填写其他类型'
|
|
|
+ })
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ return true
|
|
|
+ },
|
|
|
+ //根据委托单id查询 taskId
|
|
|
+ getTaskId(id) {
|
|
|
+ let sql = ``
|
|
|
+ if (this.typeValue == '2') {
|
|
|
+ sql =
|
|
|
+ `select TASK_ID_,PROC_INST_ID_ from ibps_bpm_tasks where NAME_ = '确认' and NODE_ID_ = 'Activity_02lroj1' and PROC_DEF_KEY_ = 'Process_0pjp1fy' and EXEC_ID_ = (select PROC_INST_ID_ from act_ru_execution where ACT_ID_ = 'Activity_02lroj1' and BUSINESS_KEY_ = '${id}') ORDER BY CREATE_TIME_ desc`
|
|
|
+ } else if (this.typeValue == '4') {
|
|
|
+ sql =
|
|
|
+ `select TASK_ID_,PROC_INST_ID_ from ibps_bpm_tasks where NAME_ = '沟通' and NODE_ID_ = 'Activity_0qy1dd7' and PROC_DEF_KEY_ = 'Process_0pjp1fy' and EXEC_ID_ = (select PROC_INST_ID_ from act_ru_execution where ACT_ID_ = 'Activity_0qy1dd7' and BUSINESS_KEY_ = '${id}') ORDER BY CREATE_TIME_ desc`
|
|
|
+ }
|
|
|
+ this.$common.request('sql', sql).then(res => {
|
|
|
+ if (res.state == 200) {
|
|
|
+ let result = res.variables.data[0]
|
|
|
+ this.taskId = result.TASK_ID_
|
|
|
+
|
|
|
+ this.getProcInstId(result.PROC_INST_ID_)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //根据委托单id查询 taskId
|
|
|
+ getProcInstId(id) {
|
|
|
+ let sql =
|
|
|
+ `select OPTION_ from ibps_bpm_oper_log where PROC_INST_ID_ = '${id}' order by create_time_ desc limit 1`
|
|
|
+ this.$common.request('sql', sql).then(res => {
|
|
|
+ if (res.data.state == 200) {
|
|
|
+ let result = res.data.variables.data[0]
|
|
|
+ this.option = result.OPTION_
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getShow() {
|
|
|
+ this.$refs['picker'].show();
|
|
|
+ },
|
|
|
+ getPageA() {
|
|
|
+ let pages = getCurrentPages()
|
|
|
+ let prevPage = pages[pages.length - 2]
|
|
|
+ prevPage.$vm.getValue()
|
|
|
+ // uni.navigateBack({
|
|
|
+ // dalta: 1
|
|
|
+ // })
|
|
|
+ },
|
|
|
+ uploadClick(item) {
|
|
|
+ if (/^(pdf|png|jpg|jpeg|gif)$/.test(item.ext)) {
|
|
|
+ // uni.navigateTo({
|
|
|
+ // url: `/pages/fileView/fileView?id=${item.id}&ext=${item.ext}`
|
|
|
+ // })
|
|
|
+ } else {
|
|
|
+ this.$uploades.download(item.id, item.name, this)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //退回原因
|
|
|
+ getBack() {
|
|
|
+ this.content = this.option
|
|
|
+ this.backShow = true
|
|
|
+ },
|
|
|
+ cancel() {
|
|
|
+ this.backShow = false
|
|
|
+ },
|
|
|
+ formatter(type, val) {
|
|
|
+ if (type === 'year') {
|
|
|
+ return val + '年';
|
|
|
+ }
|
|
|
+ if (type === 'month') {
|
|
|
+ return val + '月';
|
|
|
+ }
|
|
|
+ if (type === 'day') {
|
|
|
+ return val + '日';
|
|
|
+ }
|
|
|
+ return val;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+ ::v-deep .van-cell__title {
|
|
|
+ width: 65%;
|
|
|
+
|
|
|
+ .van-cell__label {
|
|
|
+ overflow-wrap: break-word;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .sectionBox {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 2px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: rgba(128, 138, 135, .9);
|
|
|
+
|
|
|
+ .left {
|
|
|
+ width: 90px;
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .sectionBox::before {
|
|
|
+ content: '';
|
|
|
+ width: 5px;
|
|
|
+ height: 14px;
|
|
|
+ border-radius: 2px;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ .btn-back-color {
|
|
|
+ background-color: #30c2bd !important;
|
|
|
+ border: none;
|
|
|
+ }
|
|
|
+ .btn-sty {
|
|
|
+ padding: 0 13px;
|
|
|
+ border-radius: 5px;
|
|
|
+ }
|
|
|
+ .u-m-r-15 {
|
|
|
+ margin-right: 8px !important;
|
|
|
+ }
|
|
|
+ .verticalLine {
|
|
|
+ color: #000;
|
|
|
+ font-size: 13px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ }
|
|
|
+ .verticalLine::before {
|
|
|
+ content: '';
|
|
|
+ width: 5px;
|
|
|
+ height: 14px;
|
|
|
+ background-color: #2979ff;
|
|
|
+ border-radius: 2px;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ .suspensionBtn {
|
|
|
+ width: 80px;
|
|
|
+ height: 80px;
|
|
|
+ position: fixed;
|
|
|
+ top: 75%;
|
|
|
+ right: 2%;
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .backgroundSty {
|
|
|
+ height: 100%;
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+ .cu-form-group .title {
|
|
|
+ min-width: 180px;
|
|
|
+ }
|
|
|
+ .padding{
|
|
|
+ padding-bottom: 15px;
|
|
|
+ padding-top: 5px;
|
|
|
+ background-color: #f8f8f8;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ }
|
|
|
+ .btn {
|
|
|
+ width: 90%;
|
|
|
+ padding: 15px;
|
|
|
+ border-radius: 5px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .fileBox {
|
|
|
+ line-height: 50px;
|
|
|
+ color: #888888;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ border: 1px solid #DDDDDD;
|
|
|
+ border-radius: 8px;
|
|
|
+ padding: 5px;
|
|
|
+ margin-top: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .u-update-content {
|
|
|
+ font-size: 26px;
|
|
|
+ // color: $u-content-color;
|
|
|
+ line-height: 1.7;
|
|
|
+ padding: 30px;
|
|
|
+ }
|
|
|
+ .verticalLine {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ font-size: 14px;
|
|
|
+ color: rgb(51, 51, 51);
|
|
|
+ }
|
|
|
+ .verticalLine::before {
|
|
|
+ content: '';
|
|
|
+ width: 5px;
|
|
|
+ height: 14px;
|
|
|
+ background-color: #2979ff;
|
|
|
+ border-radius: 2px;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+ .scrollView {
|
|
|
+ overflow-y: scroll;
|
|
|
+ height: 95%;
|
|
|
+ }
|
|
|
+ .scrollView::-webkit-scrollbar{
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ ::v-deep .yonghu .van-cell--borderless {
|
|
|
+ padding-left: 8px;
|
|
|
+ }
|
|
|
+ ::v-deep .yonghu .van-cell .van-field__label {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: left;
|
|
|
+ font-size: 14px;
|
|
|
+ color: rgb(51, 51, 51);
|
|
|
+ }
|
|
|
+ ::v-deep .yonghu .van-cell .van-field__label::before {
|
|
|
+ content: '';
|
|
|
+ width: 5px;
|
|
|
+ height: 14px;
|
|
|
+ background-color: #2979ff;
|
|
|
+ border-radius: 2px;
|
|
|
+ margin-right: 5px;
|
|
|
+ }
|
|
|
+</style>
|