<template> <view> <cu-custom bgColor="bg-blue" :isBack="true" > <block slot="backText">返回</block> <block slot="content">{{title}}</block> </cu-custom> <form @submit="formSubmit" class="cu-list menu"> <view class="titlebg2"> <view class="titlet1" ></view> <view class="titlet2" >企业信息</view> </view> <view class="textbg"> <view class="text12"> 企业名称 </view> <view class="text22"> {{inputForm.name}} </view> </view> <view class="textbg"> <view class="text12"> 属地 </view> <view class="text22"> {{inputForm.qySd}} </view> </view> <view class="textbg"> <view class="text12"> 企业负责人 </view> <view class="text22"> {{inputForm.lxr}} </view> </view> <view class="textbg"> <view class="text12"> 负责人号码 </view> <view class="text22"> {{inputForm.phone}} </view> </view> <view style="height: 30rpx;background-color: white;"></view> <view class="titlebg2" style="margin-top:10rpx ;"> <view class="titlet1" ></view> <view class="titlet2" >挂钩干部</view> </view> <view class="textbg"> <view class="text12"> 姓名 </view> <view class="text22"> {{inputForm.bz5}} </view> </view> <view style="height: 30rpx;background-color: white;"></view> <view class="titlebg2" style="margin-top:10rpx ;"> <view class="titlet1" ></view> <view class="titlet2" >主要问题诉求</view> </view> <view v-for="(item, index2) in questionList"> <view style="display: flex;background-color: #ffffff;justify-content: space-between; align-items: center;"> <view class="titlebb"> 问题{{index2+1}} </view> <!-- <icon v-if="index2!=0" @click="del(index2)" type="cancel" style="padding-right: 15rpx;padding-top: 5rpx;padding-left: 100rpx;"></icon> --> </view> <view class="input1"> <view class="title"> 问题名称 </view> <input v-model="item.qname" placeholder="请填写问题名称" disabled="true" ></input> </view> <view class="cu-form-group margin-top"> <view class="title"> 问题类型 </view> <view class="input2">{{item.qtype||'请选择问题类型'}}</view> </view> <view class="cu-form-group margin-top" v-if="item.t1!=''"> <view class="title"> {{item.t1}} </view> <input style="width: 200rpx;" v-model="item.gaps" :placeholder="item.t1s" disabled="true"></input>{{item.t1d}} </view> <view class="cu-form-group margin-top" > <view class="title"> 问题描述 </view> <textarea v-model="item.des" placeholder="请填写问题描述" disabled="true" ></textarea> </view> <view class="cu-form-group margin-top" style="border-bottom: 3px solid #eee;" v-if="item.des8"> <view class="title"> 涉及单位 </view> <view class="input2">{{item.des8||''}}</view> </view> <!-- 挂钩干部 --> <view class="cu-form-group margin-top" v-if="roleIds=='1915280292672946177'" > <view class="title"> 问题处理 </view> <radio-group @change="(e) => radioChange(e, index2)" class="radiog"> <label class="uni-list-cell uni-list-cell-pd" v-for="(item3, index3) in dels" :key="item3"> <view> <radio :value="item3" :checked="index3 === item.current" :disabled="index3 != item.current&&!item.cansubmit" /> </view> <view style="padding-left: 15rpx;">{{item3}}</view> </label> </radio-group> </view> <!-- 大走访办公室 --> <view class="cu-form-group margin-top" v-if="roleIds=='1910175386924417025'" > <view class="title"> 问题处理 </view> <radio-group @change="(e) => radioChange(e, index2)" class="radiog"> <label class="uni-list-cell uni-list-cell-pd" v-for="(item3, index3) in dels2" :key="item3"> <view> <radio :value="item3" :checked="index3 === item.current" :disabled="index3 != item.current&&!item.cansubmit"/> </view> <view style="padding-left: 15rpx;">{{item3}}</view> </label> </radio-group> </view> <!-- 交办部门 --> <view class="cu-form-group margin-top" v-if="roleIds=='1910175949166673921'" > <view class="title"> 问题处理 </view> <radio-group @change="(e) => radioChange(e, index2)" class="radiog"> <label class="uni-list-cell uni-list-cell-pd" v-for="(item3, index3) in dels3" :key="item3"> <view> <radio :value="item3" :checked="index3 === item.current" :disabled="index3 != item.current&&!item.cansubmit"/> </view> <view style="padding-left: 15rpx;">{{item3}}</view> </label> </radio-group> </view> <!-- 挂钩干部或大走访办公室或交办部门 --> <view class="cu-form-group margin-top" v-if="roleIds=='1910175386924417025'||roleIds=='1915280292672946177'||roleIds=='1910175949166673921'" > <view class="title"> 预计办结时间 </view> <picker mode="date" class="title2" @change="(e) => onDateChange(e, index2)" v-if="item.cansubmit" > <view class="input2">{{item.finishdate||'请选择'}}</view> </picker> <view class="input2" v-if="!item.cansubmit">{{item.finishdate||'请选择'}}</view> </view> <view v-if="item.showjbdw" class="cu-form-group margin-top" > <view class="title"> 交办单位 </view> <zqs-select class="input2" :multiple="true" :list="pickerData" label-key="label" value-key="value" placeholder=" 请选择" title="请选择交办单位" clearable v-model="item.checkUserList" @search="searchEvent" @change="selectChange2" ></zqs-select> </view> <view v-if="item.showjbdw2" class="cu-form-group margin-top" > <view class="title"> 交办单位 </view> <view class="input2" >{{item.des2||'请选择'}}</view> </view> <view class="cu-form-group margin-top" v-if="(roleIds=='1910175386924417025'||roleIds=='1915280292672946177')&&item.showjbdw"> <view class="title"> 交办要求 </view> <textarea v-model="item.delyj" placeholder="请填写交办要求" ></textarea> </view> <view class="cu-form-group margin-top" v-if="(roleIds=='1910175386924417025'||roleIds=='1915280292672946177'||roleIds=='1910175949166673921')&&!item.showjbdw"> <view class="title"> 处理建议 </view> <textarea v-model="item.delyj" placeholder="请填写处理建议" :disabled="!item.cansubmit" ></textarea> </view> <!-- <view class="cu-form-group2 margin-top" style="border-bottom: 3px solid #eee;"> <view class="title"> 附件: </view> <button @click="addfj" style="height: 30px;width: 240rpx;margin-left: 55rpx;" class="cu-btn block bg-blue margin-tb-sm lg">+上传附件</button> </view> <view v-for="(item3, index3) in item.fj"> <view style="display: flex;background-color: #ffffff;justify-content: space-between; align-items: center;"> <view class="titlebb"> {{item3.fjname}} </view> <icon @click="del(index3)" type="cancel" style="padding-right: 15rpx;padding-top: 5rpx;padding-left: 100rpx;"></icon> </view> </view> --> <view class="cu-form-group margin-top" style="border-bottom: 3px solid #eee;" v-if="roleIds=='1910175386924417025'||roleIds=='1915280292672946177'||roleIds=='1910175949166673921'"> <uni-file-picker style="margin-bottom: 10px;" limit="9" ref="picFile" v-model="item.picLists" fileMediatype="all" mode="grid" title="附件上传" :auto-upload="autoUpload" @select="(e) => select(e, index2)" @progress="progress" @success="success" @fail="fail" @change="onChange" @delete="(e) => deleteFile(e, index2)" :imageStyles="imageStyles" :disabled="!item.cansubmit"> </uni-file-picker> </view> <!-- 流程展示 --> <view v-for="(record, index4) in item.oplist" :key="index4" class="record-item" @click="viewDetails(record)" style="border-bottom: 2px solid #eee;"> <view style="display: flex; flex-direction:row;align-items: center; "> <view v-if="item.oplist.length!=1" :class="index4 === item.oplist.length - 1 ? 'record-p2' : 'record-p1'"></view> <view v-if="item.oplist.length==1" class="record-p1"></view> <text class="record-time">{{ record.opTypeName }}</text> </view> <view style="display: flex; flex-direction:row;align-items: center; "> <view class="submit-time"> <text v-if="record.des6!=''&&record.des6!=undefined" >处理建议:{{ record.des6 }}</text> <text v-if="record.des5!=''&&record.des5!=undefined" >预计办结时间:{{ record.des5 }}</text> <text >{{ record.roleName }}-{{ record.des2 }} {{ record.updateDate }}</text> </view> </view> </view> <view v-if="canpj"> <view class="cu-form-group margin-top" > <view class="title" style="color: #3c9cff;"> 企业主要负责人知晓情况: </view> <radio-group @change="(e) => radioChange2(e, index2,1)" class="radiog radiog2"> <label class="uni-list-cell uni-list-cell-pd" v-for="(item3, index3) in dels4" :key="item3"> <view> <radio :value="item3" :checked="index3 === item.current" /> </view> <view style="padding-left: 15rpx;place-self: center;padding-right: 18rpx;">{{item3}}</view> </label> </radio-group> </view> <view class="cu-form-group margin-top" > <view class="title" style="padding-right: 0;color: #3c9cff;"> 满意度评价: </view> <radio-group @change="(e) => radioChange2(e, index2,2)" class="radiog radiog2"> <label class="uni-list-cell uni-list-cell-pd" v-for="(item3, index3) in dels5" :key="item3"> <view> <radio :value="item3" :checked="index3 === item.current" /> </view> <view style="padding-left: 5rpx;place-self: center;padding-right: 9rpx;">{{item3}}</view> </label> </radio-group> </view> <view class="cu-form-group margin-top" v-if="item.showpjedit"> <view class="title"> 说明 </view> <textarea v-model="item.delyj" placeholder="请填写说明" ></textarea> </view> </view> <view style="border-bottom: 8px solid #eee;"> </view> </view> <!-- <view style="width: 400rpx;margin-left: 20rpx;"> <button @click="addp" style="height: 30px;" class="cu-btn block bg-blue margin-tb-sm lg">+增加问题</button> </view> --> <view style="height: 40rpx;"></view> <view class="flexC" v-if="cansubmit"> <button v-if="roleIds=='38a14f1f42ed424eab4cb5d489596b0d'" @click="save" class="bt1 block margin-tb-sm lg">暂存</button> <button form-type="submit" class="bt1 cu-btn block bg-blue margin-tb-sm lg">提交</button> </view> <view class="flexC" v-if="canpj"> <button @click="pjsave" class="bt1 cu-btn block bg-blue margin-tb-sm lg">立即评价</button> </view> <view style="height: 40rpx;"></view> </form> </view> </template> <script> var graceChecker = require("@/common/graceChecker.js"); import revenueListService from '@/api/revenue/revenueListService' import loginService from '@/api/auth/loginService.js' import * as $auth from "../../common/auth" export default { components: { }, data() { return { title: '问题诉求情况', cansubmit: false, canpj:false, roleIds:'', uid:'', inputForm: { id:'', name: '', industry: '', lxr: '', phone: '', bz1: '', bz2: '', bz3: '', bz4: '', bz5: '', bz6: '', des1: '', des2: '', des3: '', des4: '', des6: '', des10: '', }, t1: '可供产品', t1s: '请填写可供产品', t2: '可供数量', t2s: '请填写可供数量', t3: '详细描述', t3s: '请填写详细描述', autoUpload: false, imageStyles: { width: 90, height: 90 }, parkList: [ "用工人才", "资金需求", "土地厂房", "订单及配套", "政策兑现", "创新及品牌", "审批手续", "水电气供应", "安全环保消防", "其他(需详细说明)"], questionList:[{qname:"",qtype:"",qTypeindex:"",gaps:"",des:"",t1:"",t1s:""}], dels:["办结","反馈大走访活动办","正在办理","难以化解","持续跟踪","提请会办"], dels2:["办结","交办"], dels3:["办结","正在办理","难以化解","持续跟踪","提请会办"], dels4:["是","否"], dels5:["非常满意","满意","不满意"], index:0, ischeck: false, importUserId: [], pickerData: [], pickerDataOld: [], selectedValues: [] } }, computed: { // 动态计算选中的 label selectedLabels() { return this.item.checkUserList .map((value) => { const item = this.pickerData.find((option) => option.value === value); return item ? item.label : value; // 如果找不到,返回 value }) .join(", "); }, }, onShow() { this.$auth.checkLogin() loginService.getDictList({ dictTypeId:"1907700775364263937" }).then(({data}) => { this.pickerData = data this.pickerDataOld = data //默认第一个选项 //this.checkUserList=this.pickerData[0].value; }).catch(e => { }) }, watch: { value2(val) { console.log('我是更新后的选中数据', val) }, }, created() { }, mounted() { }, async onLoad(query) { this.uid= $auth.getUserInfo().id; this.roleIds= $auth.getUserInfo().roleIds; if(query.ischeck!=undefined){ //查看 this.ischeck=true; let data2 = await loginService.getdzfQuestionqueryById({id:query.id}) this.inputForm.id = data2.data.id; this.inputForm.name = data2.data.qyName; this.inputForm.qySd = data2.data.qySd; this.inputForm.lxr = data2.data.qyFzr; this.inputForm.phone = data2.data.phone; this.inputForm.bz5 = data2.data.officer; //判断是否显示提交,暂存按钮 if(data2.data.states=='1'&&data2.data.des1.includes($auth.getUserInfo().loginName)){ this.cansubmit=true; } //将流程的最后一步设置到查看(问题处理,预计办结时间,处理建议) for (let i = 0; i < data2.data.dzfQuestionDetilDTOList.length; i++) { let opsize=data2.data.dzfQuestionDetilDTOList[i].oplist.length; data2.data.dzfQuestionDetilDTOList[i].showpjedit=false for (let j = 0; j < opsize; j++) { data2.data.dzfQuestionDetilDTOList[i].showjbdw=false; data2.data.dzfQuestionDetilDTOList[i].showjbdw2=false; //当前登录人 if (data2.data.dzfQuestionDetilDTOList[i].oplist[j].createBy.id === this.uid) { //问题处理 console.log("问题:"+data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType) if(data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType=='3'){ data2.data.dzfQuestionDetilDTOList[i].current=0 data2.data.dzfQuestionDetilDTOList[i].showjbdw=false; data2.data.dzfQuestionDetilDTOList[i].showjbdw2=false; }else if(data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType=='4'){ data2.data.dzfQuestionDetilDTOList[i].current=1 }else if(data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType=='5'){ //挂钩干部 if(this.roleIds=='1915280292672946177'){ data2.data.dzfQuestionDetilDTOList[i].current=2 //交办部门 }else{ data2.data.dzfQuestionDetilDTOList[i].current=1 } }else if(data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType=='6'){ //挂钩干部 if(this.roleIds=='1915280292672946177'){ data2.data.dzfQuestionDetilDTOList[i].current=3 //交办部门 }else{ data2.data.dzfQuestionDetilDTOList[i].current=2 } }else if(data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType=='7'){ //挂钩干部 if(this.roleIds=='1915280292672946177'){ data2.data.dzfQuestionDetilDTOList[i].current=4 //交办部门 }else{ data2.data.dzfQuestionDetilDTOList[i].current=3 } }else if(data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType=='8'){ //挂钩干部 if(this.roleIds=='1915280292672946177'){ data2.data.dzfQuestionDetilDTOList[i].current=5 //交办部门 }else{ data2.data.dzfQuestionDetilDTOList[i].current=4 } } //大走访办公室角色 else if(data2.data.dzfQuestionDetilDTOList[i].oplist[j].opType=='9'){ data2.data.dzfQuestionDetilDTOList[i].current=1 data2.data.dzfQuestionDetilDTOList[i].showjbdw2=true; data2.data.dzfQuestionDetilDTOList[i].showjbdw=false; } //处理建议 data2.data.dzfQuestionDetilDTOList[i].delyj=data2.data.dzfQuestionDetilDTOList[i].oplist[j].des6 } } //办结时间就是显示最后一条处理意见的办结时间 if(data2.data.dzfQuestionDetilDTOList[i].oplist[opsize-1].des5!=undefined&&data2.data.dzfQuestionDetilDTOList[i].oplist[opsize-1].des5!=''){ data2.data.dzfQuestionDetilDTOList[i].finishdate=data2.data.dzfQuestionDetilDTOList[i].oplist[opsize-1].des5 } //每条问题是否需要提交 if(data2.data.dzfQuestionDetilDTOList[i].des1!=undefined){ let nextuser=data2.data.dzfQuestionDetilDTOList[i].des1+","; if(nextuser.includes($auth.getUserInfo().loginName+",")){ data2.data.dzfQuestionDetilDTOList[i].cansubmit=true; }else{ data2.data.dzfQuestionDetilDTOList[i].cansubmit=false; } }else{ data2.data.dzfQuestionDetilDTOList[i].cansubmit=false; } data2.data.dzfQuestionDetilDTOList[i].checkUserList=[]; data2.data.dzfQuestionDetilDTOList[i].picLists=[]; data2.data.dzfQuestionDetilDTOList[i].picUrl=[]; //初始化附件 if (data2.data.dzfQuestionDetilDTOList[i].des6 != null) { var list = data2.data.dzfQuestionDetilDTOList[i].des6.split(",") list.forEach(item => { data2.data.dzfQuestionDetilDTOList[i].picUrl.push({ 'url': "http://47.97.69.114:8089/yd_qycpfbWeb"+item, 'uuid': "http://47.97.69.114:8089/yd_qycpfbWeb"+item }) let aa=item.split("&name=") data2.data.dzfQuestionDetilDTOList[i].picLists.push({ 'url': "http://47.97.69.114:8089/yd_qycpfbWeb"+item, 'uuid': "http://47.97.69.114:8089/yd_qycpfbWeb"+item, 'name': aa[1] }) }) } } this.questionList=data2.data.dzfQuestionDetilDTOList; console.log(this.questionList) if(query.ischeck=='2'){ this.title="诉求办理评价"; this.canpj=true; } }else{ //新增 let data2 = await loginService.queryByUserName() this.inputForm = this.recover(this.inputForm, data2.data) this.inputForm.id=""; } }, methods: { //交办单位 selectChange2() { // 此处为点击的事件 this.pickerData=this.pickerDataOld; }, searchEvent(val) { this.pickerData=this.filteredItems(val); }, filteredItems(searchQuery) { const query = searchQuery.trim(); if (!query) return this.pickerDataOld; return this.pickerDataOld.filter(item => { return item.label.toString().includes(query); }); }, //交办单位结束 onDateChange(e,index2) { this.$set(this.questionList[index2], 'finishdate', e.detail.value); }, radioChange: function(evt,index2) { //大走访办公室角色时 if(this.roleIds=='1910175386924417025'){ if(evt.detail.value=='办结'){ this.questionList[index2].showjbdw=false; this.questionList[index2].delyj=""; }else if(evt.detail.value=='交办'){ this.questionList[index2].showjbdw=true; console.log(this.questionList[index2]) this.questionList[index2].delyj="请2日内回应,10内反馈办理结果,如办结请上传加盖公章的书面材料"; } for (let i = 0; i < this.dels2.length; i++) { if (this.dels2[i] === evt.detail.value) { this.questionList[index2].current = i; break; } } //挂钩干部 }else if(this.roleIds=='1915280292672946177'){ console.log("选择:"+evt.detail.value); for (let i = 0; i < this.dels.length; i++) { if (this.dels[i] === evt.detail.value) { this.questionList[index2].current = i; break; } } //交办部门 }else if(this.roleIds=='1910175949166673921'){ console.log("选择:"+evt.detail.value); for (let i = 0; i < this.dels3.length; i++) { if (this.dels3[i] === evt.detail.value) { this.questionList[index2].current = i; break; } } } }, radioChange2: function(evt,index2,witch) { if(evt.detail.value=='非常满意'||evt.detail.value=='满意'){ this.questionList[index2].showpjedit=false; this.questionList[index2].pjyj=""; }else if(evt.detail.value=='不满意'){ this.questionList[index2].showpjedit=true; } if(witch==1){ for (let i = 0; i < this.dels4.length; i++) { if (this.dels4[i] === evt.detail.value) { this.questionList[index2].current1 = i; break; } } }else{ for (let i = 0; i < this.dels5.length; i++) { if (this.dels5[i] === evt.detail.value) { this.questionList[index2].current2 = i; break; } } } }, addfj(){ }, addp(){ this.questionList.push({qname:"",qtype:"",qTypeindex:"",gaps:"",des:"",t1:"",t1s:""}) }, del(index2){ this.questionList.splice(index2, 1); }, bindPickerChange: function(e,index2) { if(e.detail.value==0){ this.questionList[index2].t1='缺口数'; this.questionList[index2].t1s= '请填写缺口数'; this.questionList[index2].t1d= '人'; }else if(e.detail.value==1){ this.questionList[index2].t1='缺口数'; this.questionList[index2].t1s= '请填写缺口数'; this.questionList[index2].t1d= '万元'; }else if(e.detail.value==2){ this.questionList[index2].t1='缺口数'; this.questionList[index2].t1s= '请填写缺口数'; this.questionList[index2].t1d= ''; }else{ this.questionList[index2].t1=''; this.questionList[index2].t1s= ''; this.questionList[index2].t1d= ''; } this.questionList[index2].qTypeindex = e.detail.value; this.questionList[index2].qtype=this.parkList[e.detail.value] }, // 获取上传进度 progress(e) { console.log('上传进度:', e) }, // 上传成功 success(e) { console.log('上传成功') }, // 上传失败 fail(e) { console.log('上传失败:', e) }, onChange(e) { console.log(e); // 查看选择文件的详细信息 }, deleteFile(e,index2) { this.questionList[index2].picUrl.splice(e.index, 1) }, // 获取上传状态 select(e,index2) { console.log('选择文件:', e) var _this = this var i = 0 upload() function upload() { if (i >= e.tempFiles.length) { return; } var item = e.tempFiles[i] e.tempFiles[i].progress = 100 uni.showLoading({ title: "上传中", mask: true }); uni.uploadFile({ url: '/yd_qycpfb/file/upload?uploadPath=userdir', // 仅为示例,非真实的接口地址 filePath: item.url, name: 'file', formData: { 'fileName': item.name }, header: { 'token': _this.$auth.getUserToken() }, success: (res) => { var data = res.data if (typeof data['error'] != "undefined") { uni.showToast({ icon: 'none', title: '上传失败,请联系开发!' }); _this.$refs.picFile.clearFiles(_this.questionList[index2].picLists.length) } else { _this.questionList[index2].picUrl.push({ url: data, uuid: item.uuid }) i++; // _this.$refs.picFile.setProgress(100) //e.tempFiles[i].progress = 100 console.log(_this.$refs.picFile) upload() } }, fail: () => { uni.hideLoading(); uni.showToast({ icon: 'none', title: '上传失败,请联系开发!' }); _this.$refs.picFile.clearFiles(_this.questionList[index2].picLists.length) }, complete: function() { uni.hideLoading(); } }); } }, save(){ console.log("交办单位:"+this.checkUserList) // this.inputForm.des10=""; // this.inputForm.dzfQuestionDetilDTOList=this.questionList; // this.checkinput(); }, pjsave(){ let cansave=true; for (let i = 0; i < this.questionList.length; i++) { this.questionList[i].checkUserList=""; if (this.questionList[i].current1 ==undefined||this.questionList[i].current2 ==undefined) { cansave=false; } } this.inputForm.dzfQuestionDetilDTOList=this.questionList; if(cansave){ uni.showLoading() loginService.savepj(this.inputForm).then(({ data }) => { uni.hideLoading(); uni.showToast({ title: "评价成功!", icon: "success" }); uni.redirectTo({ url: '/pages/question/questionList?w=2' }) }).catch((e) => { uni.hideLoading(); }) }else{ uni.showToast({ title: "评价意见还未填写!", icon: "success" }); } }, formSubmit: function(e) { //将交办单位的名称带出 for (let i = 0; i < this.questionList.length; i++) { if (this.questionList[i].checkUserList != []) { this.questionList[i].checkUserListName=this.questionList[i].checkUserList.map((value) => { const item = this.pickerData.find((option) => option.value === value); return item ? item.label : value; // 如果找不到,返回 value }) .join(","); } this.questionList[i].checkUserList=this.questionList[i].checkUserList.join(","); //附件处理 this.questionList[i].des6 = []; this.questionList[i].picUrl.forEach(item => { this.questionList[i].des6.push(item.url) }) this.questionList[i].des6 = this.questionList[i].des6.toString(); } this.inputForm.dzfQuestionDetilDTOList=this.questionList; this.checkinput(); }, checkinput(){ if(this.hasDuplicateQName(this.questionList)){ uni.showToast({ icon: 'none', title: '问题名称不能重复!' }); }else{ uni.showLoading() loginService.save2OpRecord(this.inputForm).then(({ data }) => { uni.hideLoading(); uni.showToast({ title: "提交成功!", icon: "success" }); uni.redirectTo({ url: '/pages/question/questionList' }) }).catch((e) => { uni.hideLoading(); }) } }, hasDuplicateQName(array) { const seen = new Set(); for (const item of array) { if (seen.has(item.qname)) { return true; // 找到重复的 qName } seen.add(item.qname); } return false; // 没有重复的 qName } } } </script> <style> /* .file-title) { font-size: 17px !important; } */ input,textarea{ color: #8799a3; } .input1{ background-color: #ffffff; padding: 1upx 40upx; display: flex; align-items: center; padding-top: 20upx; border-bottom: 1px solid #eee; } .input1 .title { text-align: justify; padding-right: 30upx; font-size: 30upx; position: relative; height: 60upx; line-height: 60upx; border: ; } .title2{ width: 75%; text-align: left; } .input2 { flex: 1; font-size: 30upx; color: #555; padding-right: 20upx; width: 100%; } .uni-input{ } .textbg{ display: flex; background-color: white; padding-top: 29rpx; } .text12{ width: 200rpx; margin-left: 30rpx; color: #000000; font-size: 29rpx; } .text2{ flex: 1; color: #000000; font-size: 30rpx; padding-bottom: 2rpx; } .text22{ flex: 1; color: #666666; font-size: 29rpx; padding-bottom: 2rpx; align-self: flex-end; } .titlebg2{ display: flex; background-color: white; padding-left: 22rpx; padding-top: 35rpx; padding-bottom: 25rpx; margin-bottom: 2rpx; } .titlet1{ width: 7rpx; margin-top: 7rpx; margin-bottom: 7rpx; background-color: #2752eb; margin-right: 8rpx; } .titlet2{ font-weight: 800; color: #2752eb; } .titlebb{ color: #000000; font-weight: 800; padding-left: 40rpx; background-color: #ffffff; padding-top: 20rpx; } .flexC{ display: flex; } .bt1{ flex:1; margin: 30rpx; } .bt2{ flex:1; margin: 30rpx; } .radiog{ flex:1; margin: 10rpx; } .radiog2{ display: flex; } .uni-list-cell{ display: flex; } .cu-form-group2{ background-color: #ffffff; padding: 0.5px 22px; display: flex; align-items: center; min-height: 44px; } .modal-content { padding: 20px; } .record-item { background-color: #fff; border-radius: 10rpx; padding: 20rpx; box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; } .record-p1{ width: 10px; height: 10px; border-radius: 100px; background-color: rgb(60, 156, 255); } .record-p2{ width: 10px; height: 10px; border-radius: 100px; background-color: rgb(150, 151, 153); } .record-x1{ width: 20rpx; height: 100%; background-color: rgb(150, 151, 153); } .record-name { font-size: 32rpx; font-weight: bold; margin-bottom: 10rpx; margin-left: 10rpx; } .record-time { font-size: 28rpx; margin-left: 10rpx; color: #666; margin-bottom: 10rpx; } .submit-time { font-size: 14px; color: #666; margin-left: 28rpx; position: relative; display: flex; flex-direction:column; } .submit-time::before { content: ''; position: absolute; left: -10px; top: 0; height: 100%; width: 1px; background-color:rgb(150, 151, 153); } </style>