|
|
@@ -2,7 +2,11 @@
|
|
|
<div>
|
|
|
<!-- 顶部条-->
|
|
|
<div class="navBarTOP">
|
|
|
- <van-nav-bar class="navBar" :title="info.summaryTaskName" left-arrow @click-left="onClickLeft"/>
|
|
|
+ <van-nav-bar
|
|
|
+ class="navBar"
|
|
|
+ :title="info.summaryTaskName"
|
|
|
+ left-arrow
|
|
|
+ @click-left="onClickLeft" />
|
|
|
<!-- <p style="text-align: right;margin-right: 16px;color: #1e5398;">{{title}}</p>-->
|
|
|
</div>
|
|
|
<div class="lineGrey"></div>
|
|
|
@@ -10,223 +14,220 @@
|
|
|
<div class="lineGrey"></div>
|
|
|
<div class="lineGrey"></div>
|
|
|
<div class="lineGrey"></div>
|
|
|
- <div class="lineGrey" style="height:6px;"></div>
|
|
|
+ <div class="lineGrey" style="height: 6px"></div>
|
|
|
<!-- 主体内容-->
|
|
|
- <div class="container linep" style="background-color: #fff;width: 94%; margin: 0px auto; border-radius: 6px;padding: 10px">
|
|
|
- <div style="padding:4px 0">
|
|
|
- <van-icon :name="ry" size="16" style="float: left"/>
|
|
|
- <span> {{info.nickName}} - {{info.postName}}</span>
|
|
|
+ <div
|
|
|
+ class="container linep"
|
|
|
+ style="
|
|
|
+ background-color: #fff;
|
|
|
+ width: 94%;
|
|
|
+ margin: 0px auto;
|
|
|
+ border-radius: 6px;
|
|
|
+ padding: 10px;
|
|
|
+ ">
|
|
|
+ <div style="padding: 4px 0">
|
|
|
+ <van-icon :name="ry" size="16" style="float: left" />
|
|
|
+ <span> {{ info.nickName }} - {{ info.postName }}</span>
|
|
|
</div>
|
|
|
- <div style="padding:4px 0">
|
|
|
- <van-icon :name="zw" size="16" style="float: left"/>
|
|
|
- <span > 所属部门:{{info.deptName}}</span>
|
|
|
+ <div style="padding: 4px 0">
|
|
|
+ <van-icon :name="zw" size="16" style="float: left" />
|
|
|
+ <span> 所属部门:{{ info.deptName }}</span>
|
|
|
</div>
|
|
|
- <div style="padding:4px 0">
|
|
|
- <van-icon :name="tm" size="16" style="float: left"/>
|
|
|
- <span > 提交时间:{{info.createTime}}</span>
|
|
|
+ <div style="padding: 4px 0">
|
|
|
+ <van-icon :name="tm" size="16" style="float: left" />
|
|
|
+ <span> 提交时间:{{ info.createTime }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="lineGrey"></div>
|
|
|
- <div class="container linep" style="background-color: #fff;width: 94%; margin: 0px auto; border-radius: 6px;">
|
|
|
- <van-form ref="tabstoreVal">
|
|
|
- <div v-for="(item,index) in info.customItemList" :key="index">
|
|
|
- <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType=='sz' || item.answerType=='rq'||item.answerType=='gs'||item.answerType=='dq'||item.answerType=='xsb'">
|
|
|
- <van-cell>
|
|
|
- <template #title>{{ index + 1 }}.{{ item.customName }} <span style="color: #444;
|
|
|
- font-size: 12px;
|
|
|
- margin: 0;
|
|
|
- padding:10px 0;text-align: right">{{ item.remark}}</span></template>
|
|
|
- </van-cell>
|
|
|
- <p class="mg0">{{ item.answerValue }}</p>
|
|
|
- </div>
|
|
|
- <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType=='zp'">
|
|
|
- <van-cell>
|
|
|
- <template #title>{{ index + 1 }}.{{ item.customName }}</template>
|
|
|
- </van-cell>
|
|
|
- <delete-upload-img :imgs="item.fileInfoList"></delete-upload-img>
|
|
|
- </div>
|
|
|
- <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType=='wb'">
|
|
|
- <van-cell>
|
|
|
- <template #title>{{ index + 1 }}.{{ item.customName }}</template>
|
|
|
- </van-cell>
|
|
|
- <div class="selesetText">
|
|
|
- <p class="mg0">{{ item.answerValue }}</p>
|
|
|
- </div>
|
|
|
- <p style="color: #444;font-size: 12px;margin: 0;padding:10px 0;text-align: right">{{ item.remark }}</p>
|
|
|
- <delete-upload-img :imgs="item.fileInfoList"></delete-upload-img>
|
|
|
- </div>
|
|
|
- <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType=='duox'">
|
|
|
- <van-cell>
|
|
|
- <template #title>{{ index + 1 }}.{{ item.customName }}</template>
|
|
|
- </van-cell>
|
|
|
- <div class="selesetText">
|
|
|
- <div class="mg0" v-for="(item1,index1) in item.customOptionList" :key="index1">
|
|
|
- <p style="color:#0057ba" v-if="item1.checked">
|
|
|
- <i style="border: 1px solid #0057ba;margin-right: 10px;border-radius:2px;padding: 2px" class="van-icon van-icon-success"></i>
|
|
|
- <span >{{ item1.customOption }}</span>
|
|
|
- </p>
|
|
|
- <p v-if="!item1.checked">
|
|
|
- <i style="border: 1px solid #ccc;margin-right: 10px;border-radius:2px;color:#fff;padding: 2px" class="van-icon van-icon-success"></i>
|
|
|
- <span >{{ item1.customOption }}</span>
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="formLabel z-cell z-cells z-celly" v-if="item.answerType=='dx'">
|
|
|
- <van-cell>
|
|
|
- <template #title>
|
|
|
- {{ index + 1 }}.{{ item.customName }}
|
|
|
- </template>
|
|
|
- </van-cell>
|
|
|
- <div class="selesetText">
|
|
|
- <div class="mg0" v-for="(item2,index2) in item.customOptionList" :key="index2">
|
|
|
- <p style="color:#0057ba" v-if="item2.checked">
|
|
|
- <i style="border: 1px solid #0057ba;border-radius:40px;margin-right: 10px;padding: 2px" class="van-icon van-icon-success"></i>
|
|
|
- <span >{{ item2.customOption }}</span>
|
|
|
- </p>
|
|
|
- <p v-if="!item2.checked">
|
|
|
- <i style="border: 1px solid #ccc;border-radius:40px;margin-right: 10px;color:#fff;padding: 2px" class="van-icon van-icon-success"></i>
|
|
|
- <span >{{ item2.customOption }}</span>
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <delete-upload-img :imgs="item.fileInfoList"></delete-upload-img>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </van-form>
|
|
|
-
|
|
|
+ <div
|
|
|
+ class="container linep"
|
|
|
+ style="background-color: #fff; width: 94%; margin: 0px auto; border-radius: 6px">
|
|
|
+ <componVisitSummary
|
|
|
+ :collectionItemLists="collectionItemLists"
|
|
|
+ ref="componVisitSummary"></componVisitSummary>
|
|
|
</div>
|
|
|
- <br>
|
|
|
- <br>
|
|
|
- <br>
|
|
|
+ <br />
|
|
|
+ <div class="tc" style="padding: 0 16px" v-if="writeAgain">
|
|
|
+ <van-button class="submitBtn" block type="info" color="#0057ba" @click="onSubmit">
|
|
|
+ 补填保存
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ <br />
|
|
|
+ <br />
|
|
|
+ <br />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import history from "@/assets/Icon/history.png";
|
|
|
-import tm from "@/assets/Icon/tm.png";
|
|
|
-import zw from "@/assets/Icon/zw.png";
|
|
|
-import ry from "@/assets/Icon/ry.png";
|
|
|
-import {getSummaryMobilo} from "@/api/index";
|
|
|
-import {ImagePreview} from "vant";
|
|
|
-import deleteUploadImg from "@/components/deleteUploadImg";
|
|
|
+import history from '@/assets/Icon/history.png';
|
|
|
+import tm from '@/assets/Icon/tm.png';
|
|
|
+import zw from '@/assets/Icon/zw.png';
|
|
|
+import ry from '@/assets/Icon/ry.png';
|
|
|
+import { getSummaryMobilo } from '@/api/index';
|
|
|
+import { ImagePreview } from 'vant';
|
|
|
+import deleteUploadImg from '@/components/deleteUploadImg';
|
|
|
+import componVisitSummary from '@/views/week/componVisitSummary';
|
|
|
+import { writeAgainCustomAnswer } from '@/api/week';
|
|
|
export default {
|
|
|
- name: "daily",
|
|
|
- components: {deleteUploadImg},
|
|
|
+ name: 'daily',
|
|
|
+ components: { deleteUploadImg, componVisitSummary },
|
|
|
data() {
|
|
|
return {
|
|
|
- info:{},
|
|
|
- zw:zw,
|
|
|
- tm:tm,
|
|
|
- ry:ry,
|
|
|
+ info: {},
|
|
|
+ zw: zw,
|
|
|
+ tm: tm,
|
|
|
+ ry: ry,
|
|
|
show: true,
|
|
|
num: 0,
|
|
|
todayGoal: {},
|
|
|
progressWidth: 0,
|
|
|
history: history,
|
|
|
imgArr: [],
|
|
|
- activeNames: ['1', '2', '3', '4', '5', '6', '7', '8', '10',"16","17"],
|
|
|
- value: "2",
|
|
|
- message: "",
|
|
|
- powerGrade:"",
|
|
|
- Content:"",
|
|
|
- Content2:"",
|
|
|
- reportTargetAll:{},
|
|
|
- reportContents:[{dayContent:""}],
|
|
|
- reportTarget:{},
|
|
|
- successContent:"",
|
|
|
- imgList:[],
|
|
|
- type:"-1"
|
|
|
+ activeNames: ['1', '2', '3', '4', '5', '6', '7', '8', '10', '16', '17'],
|
|
|
+ value: '2',
|
|
|
+ message: '',
|
|
|
+ powerGrade: '',
|
|
|
+ Content: '',
|
|
|
+ Content2: '',
|
|
|
+ reportTargetAll: {},
|
|
|
+ reportContents: [{ dayContent: '' }],
|
|
|
+ reportTarget: {},
|
|
|
+ successContent: '',
|
|
|
+ imgList: [],
|
|
|
+ type: '-1',
|
|
|
+ collectionItemLists: [],
|
|
|
+ writeAgain: false,
|
|
|
//
|
|
|
- }
|
|
|
+ };
|
|
|
},
|
|
|
created() {
|
|
|
- this.powerGrade= localStorage.getItem("powerGrade")
|
|
|
- this.getDetailById()
|
|
|
+ this.powerGrade = localStorage.getItem('powerGrade');
|
|
|
+ this.getDetailById();
|
|
|
},
|
|
|
- watch:{
|
|
|
- $route(to,from){
|
|
|
- this.powerGrade= localStorage.getItem("powerGrade")
|
|
|
- if(to.path=="/dailyDetails"){
|
|
|
- this.getDetailById()
|
|
|
+ watch: {
|
|
|
+ $route(to, from) {
|
|
|
+ this.powerGrade = localStorage.getItem('powerGrade');
|
|
|
+ if (to.path == '/dailyDetails') {
|
|
|
+ this.getDetailById();
|
|
|
}
|
|
|
// &&from.path=="/dailyApprovalList"
|
|
|
// if(to.path=="/dailyDetails"&&from.path=="/myHistoricalDaily"){
|
|
|
// this.getDetailById()
|
|
|
// }
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
activated() {
|
|
|
this.num = 0;
|
|
|
- this.userTodayPlanNum()
|
|
|
+ this.userTodayPlanNum();
|
|
|
},
|
|
|
methods: {
|
|
|
- pviewFn(val,imgVal){
|
|
|
- var imgList=[]
|
|
|
- var photos=this.reportTarget.photos[val].photos
|
|
|
- for(let i=0;i<photos.length;i++){imgList.push(photos[i].fileUrl)};
|
|
|
- ImagePreview({images: imgList, startPosition: imgVal});
|
|
|
+ pviewFn(val, imgVal) {
|
|
|
+ var imgList = [];
|
|
|
+ var photos = this.reportTarget.photos[val].photos;
|
|
|
+ for (let i = 0; i < photos.length; i++) {
|
|
|
+ imgList.push(photos[i].fileUrl);
|
|
|
+ }
|
|
|
+ ImagePreview({ images: imgList, startPosition: imgVal });
|
|
|
},
|
|
|
- submint(){
|
|
|
+ submint() {
|
|
|
this.$router.push({
|
|
|
- path: "/daily",
|
|
|
- query: {reportId:this.$route.query.reportId,temporaryShow:"N"}
|
|
|
- })
|
|
|
+ path: '/daily',
|
|
|
+ query: { reportId: this.$route.query.reportId, temporaryShow: 'N' },
|
|
|
+ });
|
|
|
},
|
|
|
- getDetailById(){
|
|
|
- let loading1=this.$toast.loading({
|
|
|
+ getDetailById() {
|
|
|
+ let loading1 = this.$toast.loading({
|
|
|
duration: 0,
|
|
|
message: '加载中...',
|
|
|
forbidClick: true,
|
|
|
});
|
|
|
- getSummaryMobilo({userSummaryId:this.$route.query.userSummaryId}).then(res=>{
|
|
|
- loading1.clear()
|
|
|
- this.reportTargetAll=res.data.reportTargetAll
|
|
|
- this.info=res.data
|
|
|
- this.type=res.data.userType
|
|
|
- if(res.data.status==3){
|
|
|
- this.successContent=res.data.successContent
|
|
|
- }else{
|
|
|
- this.successContent=res.data.failContent
|
|
|
+ getSummaryMobilo({ userSummaryId: this.$route.query.userSummaryId }).then((res) => {
|
|
|
+ loading1.clear();
|
|
|
+ this.reportTargetAll = res.data.reportTargetAll;
|
|
|
+ this.info = res.data;
|
|
|
+ this.type = res.data.userType;
|
|
|
+ if (res.data.status == 3) {
|
|
|
+ this.successContent = res.data.successContent;
|
|
|
+ } else {
|
|
|
+ this.successContent = res.data.failContent;
|
|
|
}
|
|
|
- if(res.data.reportContents.length>0){
|
|
|
- this.Content=res.data.reportContents[0].dayContent
|
|
|
- if(res.data.reportContents.length>1){
|
|
|
- this.Content2=res.data.reportContents[1].dayContent
|
|
|
- }else{
|
|
|
- this.Content2=""
|
|
|
+ if (res.data.reportContents && res.data.reportContents.length > 0) {
|
|
|
+ this.Content = res.data.reportContents[0].dayContent;
|
|
|
+ if (res.data.reportContents.length > 1) {
|
|
|
+ this.Content2 = res.data.reportContents[1].dayContent;
|
|
|
+ } else {
|
|
|
+ this.Content2 = '';
|
|
|
}
|
|
|
- }else{
|
|
|
- this.Content=""
|
|
|
- this.Content2=""
|
|
|
+ } else {
|
|
|
+ this.Content = '';
|
|
|
+ this.Content2 = '';
|
|
|
}
|
|
|
- this.reportContents=res.data.reportContents
|
|
|
- var imgList=[]
|
|
|
- if(res.data.photos!=null){
|
|
|
- for(var k=0;k<res.data.photos.length;k++){
|
|
|
- imgList.push(res.data.photos[k].fileUrl+"")
|
|
|
+ this.reportContents = res.data.reportContents;
|
|
|
+ var imgList = [];
|
|
|
+ if (res.data.photos != null) {
|
|
|
+ for (var k = 0; k < res.data.photos.length; k++) {
|
|
|
+ imgList.push(res.data.photos[k].fileUrl + '');
|
|
|
}
|
|
|
}
|
|
|
- this.imgList=imgList
|
|
|
- })
|
|
|
+ this.imgList = imgList;
|
|
|
+ this.writeAgain = res.data.customItemList.some((item) => {
|
|
|
+ return item.writeAgain === '1';
|
|
|
+ });
|
|
|
+
|
|
|
+ this.collectionItemLists = res.data.customItemList;
|
|
|
+ });
|
|
|
},
|
|
|
userTodayPlanNum() {
|
|
|
- userTodayPlanNum().then(res => {
|
|
|
+ // userTodayPlanNum().then((res) => {
|
|
|
+ // if (res.code == 200) {
|
|
|
+ // this.todayGoal = res.data;
|
|
|
+ // this.progressWidth = (this.todayGoal.finishNum / this.todayGoal.planNum) * 100 + '%';
|
|
|
+ // localStorage.setItem('nickName', res.data.user.nickName);
|
|
|
+ // localStorage.setItem('storeType', res.data.user.type);
|
|
|
+ // } else {
|
|
|
+ // this.$toast.fail(res.msg);
|
|
|
+ // }
|
|
|
+ // });
|
|
|
+ },
|
|
|
+ onClickLeft() {
|
|
|
+ this.$router.go(-1);
|
|
|
+ },
|
|
|
+ onSubmit() {
|
|
|
+ let collectionAnswerlisd = this.$refs.componVisitSummary.collectionAnswerlisd;
|
|
|
+ let collectionItemList = this.$refs.componVisitSummary.collectionItemList;
|
|
|
+ for (var c = 0; c < collectionAnswerlisd.length; c++) {
|
|
|
+ for (var b = 0; b < collectionItemList.length; b++) {
|
|
|
+ if (collectionAnswerlisd[c].id == collectionItemList[b].customId) {
|
|
|
+ collectionItemList[b].customOptionList = collectionAnswerlisd[c].value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 获取所有可以补填的题
|
|
|
+ let customItemList = collectionItemList.filter((item) => item.writeAgain);
|
|
|
+ console.log(customItemList);
|
|
|
+ // // 照片
|
|
|
+ // let zpDataList = customItemList.find((item) => item.answerType == 'zp');
|
|
|
+ // if (zpDataList) {
|
|
|
+ // let fileIdList = [];
|
|
|
+ // zpDataList.fileInfoList.forEach((item) => {
|
|
|
+ // fileIdList.push(item.id);
|
|
|
+ // });
|
|
|
+ // zpDataList.fileIdList = fileIdList;
|
|
|
+ // }
|
|
|
+ writeAgainCustomAnswer({
|
|
|
+ userSummaryId: this.$route.query.userSummaryId,
|
|
|
+ customItemList: customItemList,
|
|
|
+ }).then((res) => {
|
|
|
if (res.code == 200) {
|
|
|
- this.todayGoal = res.data
|
|
|
- this.progressWidth = (this.todayGoal.finishNum / this.todayGoal.planNum) * 100 + "%"
|
|
|
- localStorage.setItem("nickName", res.data.user.nickName)
|
|
|
- localStorage.setItem("storeType", res.data.user.type)
|
|
|
- } else {
|
|
|
- this.$toast.fail(res.msg)
|
|
|
+ this.$toast('操作成功!');
|
|
|
+ this.$router.replace({
|
|
|
+ path: '/VisitSummary',
|
|
|
+ });
|
|
|
}
|
|
|
- })
|
|
|
+ });
|
|
|
},
|
|
|
- onClickLeft() {
|
|
|
- this.$router.go(-1)
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+ },
|
|
|
+};
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
.container {
|
|
|
@@ -242,15 +243,15 @@ export default {
|
|
|
|
|
|
.formLabel {
|
|
|
margin: 0 16px;
|
|
|
- border-bottom: 1px solid #f1f1f1
|
|
|
+ border-bottom: 1px solid #f1f1f1;
|
|
|
}
|
|
|
|
|
|
.formLabel .van-cell {
|
|
|
- padding: 10px 0
|
|
|
+ padding: 10px 0;
|
|
|
}
|
|
|
|
|
|
.formLabel .van-cell::after {
|
|
|
- border: 0
|
|
|
+ border: 0;
|
|
|
}
|
|
|
|
|
|
.formLabel .van-field {
|
|
|
@@ -258,11 +259,11 @@ export default {
|
|
|
padding: 6px;
|
|
|
width: 100%;
|
|
|
border-radius: 4px;
|
|
|
- overflow: hidden
|
|
|
+ overflow: hidden;
|
|
|
}
|
|
|
|
|
|
.formLabel .van-field__control {
|
|
|
- padding: 0 10px
|
|
|
+ padding: 0 10px;
|
|
|
}
|
|
|
|
|
|
.formLabel .formLabeltitle {
|
|
|
@@ -273,7 +274,7 @@ export default {
|
|
|
.z-checkbox .van-radio {
|
|
|
padding: 6px 0;
|
|
|
}
|
|
|
-.z-celly .van-cell__title{
|
|
|
+.z-celly .van-cell__title {
|
|
|
font-weight: initial;
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
@@ -305,11 +306,11 @@ export default {
|
|
|
|
|
|
.table-headermd .van-cell {
|
|
|
padding: 0 4px;
|
|
|
- height: 100%
|
|
|
+ height: 100%;
|
|
|
}
|
|
|
|
|
|
.table-headermd th.el-table__cell > .cell {
|
|
|
- padding: 0 4px
|
|
|
+ padding: 0 4px;
|
|
|
}
|
|
|
|
|
|
.table-headermd th.el-table__cell {
|
|
|
@@ -330,12 +331,12 @@ export default {
|
|
|
}
|
|
|
|
|
|
.table-headermd::before {
|
|
|
- height: 0
|
|
|
+ height: 0;
|
|
|
}
|
|
|
|
|
|
.f-right {
|
|
|
text-align: right;
|
|
|
- margin: 0
|
|
|
+ margin: 0;
|
|
|
}
|
|
|
|
|
|
.mg0 {
|
|
|
@@ -354,7 +355,6 @@ export default {
|
|
|
}
|
|
|
|
|
|
.z-cells .van-cell {
|
|
|
- padding-bottom: 0
|
|
|
+ padding-bottom: 0;
|
|
|
}
|
|
|
-
|
|
|
-</style>
|
|
|
+</style>
|