提交 e0416766 authored 作者: zs's avatar zs
...@@ -283,7 +283,8 @@ LIMIT 1;` ...@@ -283,7 +283,8 @@ LIMIT 1;`
} }
let sql = `UPDATE ${table.inspectionRecordName} SET let sql = `UPDATE ${table.inspectionRecordName} SET
signImg = '${data.signImg}', signImg = '${data.signImg}',
synFlag = '${data.synFlag}' synFlag = '${data.synFlag}',
isException = '${data.isException}',
WHERE id = ${data.id}`; WHERE id = ${data.id}`;
await sqllitedb.executeSQL(sql); await sqllitedb.executeSQL(sql);
} catch (e) { } catch (e) {
......
...@@ -36,20 +36,28 @@ ...@@ -36,20 +36,28 @@
</view> </view>
</view> </view>
<!-- {{ isSubmit }} {{ isSign }} --> <!-- {{ isSubmit }} {{ isSign }} -->
<view v-if="isSubmit" class="profile-right"> <view class="profile-right">
<button v-if="!isSign" class="record-button" @click="toSign"> <button
v-if="!isSign"
:disabled="!isSubmit"
:class="{
'record-button': true,
'disabled-btn': !isSubmit,
}"
@click="toSign"
>
巡检人签字 巡检人签字
</button> </button>
<view v-else-if="detailsInfo.synchronization != 1" class="action-container"> <view
<image v-else-if="detailsInfo.synchronization != 1"
class="sign-img" class="action-container"
:src="detailsInfo.signImg" >
mode="aspectFit"> <image class="sign-img" :src="detailsInfo.signImg" mode="aspectFit">
</image> </image>
<button class="record-button small" @click="toSign"> <button class="record-button small" @click="toSign">重签</button>
重签 <view class="inspection-button" @click="openDialog(true)"
</button> >数据同步</view
<view class="inspection-button" @click="openDialog(true)">数据同步</view> >
</view> </view>
</view> </view>
</view> </view>
...@@ -120,8 +128,12 @@ ...@@ -120,8 +128,12 @@
v-if="position.status == 2" v-if="position.status == 2"
class="iconfont icon-shibai1" class="iconfont icon-shibai1"
></text> ></text>
<text v-if="position.isSubmit === 0" class="status-text">草稿</text> <text v-if="position.isSubmit === 0" class="status-text"
<text v-else class="status-text">{{ position.statusLable }}</text> >草稿</text
>
<text v-else class="status-text">{{
position.statusLable
}}</text>
</view> </view>
<view class="info-line"> <view class="info-line">
<text class="info-text" <text class="info-text"
...@@ -183,8 +195,12 @@ ...@@ -183,8 +195,12 @@
v-if="position.status == 2" v-if="position.status == 2"
class="iconfont icon-shibai1" class="iconfont icon-shibai1"
></text> ></text>
<text v-if="position.isSubmit === 0" class="status-text">草稿</text> <text v-if="position.isSubmit === 0" class="status-text"
<text v-else class="status-text">{{ position.statusLable }}</text> >草稿</text
>
<text v-else class="status-text">{{
position.statusLable
}}</text>
</view> </view>
<view class="info-line"> <view class="info-line">
<text class="info-text" <text class="info-text"
...@@ -202,7 +218,11 @@ ...@@ -202,7 +218,11 @@
</view> </view>
</view> </view>
<signDialog ref="signDialog" @confirm="handlePopupConfirm"></signDialog> <signDialog ref="signDialog" @confirm="handlePopupConfirm"></signDialog>
<Dialog v-show="showSyncDialog" :list="list" @close="openDialog(false)"></Dialog> <Dialog
v-show="showSyncDialog"
:list="list"
@close="openDialog(false)"
></Dialog>
</view> </view>
</template> </template>
...@@ -219,13 +239,13 @@ import { getInspectionDetails } from "@/request/index.js"; ...@@ -219,13 +239,13 @@ import { getInspectionDetails } from "@/request/index.js";
import inspectApi from "@/api/inspect"; import inspectApi from "@/api/inspect";
import signDialog from "@/components/signDialog.vue"; import signDialog from "@/components/signDialog.vue";
import detail from "./model/detail.vue"; import detail from "./model/detail.vue";
import Dialog from '@/pages/inspectionManagement/dialog.vue' import Dialog from "@/pages/inspectionManagement/dialog.vue";
import { sqlToData, dataToSql } from "./shared"; import { sqlToData, dataToSql } from "./shared";
export default { export default {
components: { components: {
signDialog, signDialog,
detail, detail,
Dialog Dialog,
}, },
data() { data() {
return { return {
...@@ -262,7 +282,7 @@ export default { ...@@ -262,7 +282,7 @@ export default {
detailsItem: {}, //单个井道详情 detailsItem: {}, //单个井道详情
isShow: false, isShow: false,
showSyncDialog: false, showSyncDialog: false,
list: [] list: [],
}; };
}, },
computed: { computed: {
...@@ -329,7 +349,9 @@ export default { ...@@ -329,7 +349,9 @@ export default {
}, },
// 获取井道详情 // 获取井道详情
getDetailsItem(value, dictCode) { getDetailsItem(value, dictCode) {
let item = this.detailsInfo.originData.find(building => building.value === value)?.position.find(pos => pos.dictCode === dictCode) let item = this.detailsInfo.originData
.find((building) => building.value === value)
?.position.find((pos) => pos.dictCode === dictCode);
if (item.status < 1) { if (item.status < 1) {
uni.showToast({ uni.showToast({
...@@ -358,7 +380,7 @@ export default { ...@@ -358,7 +380,7 @@ export default {
if (this.activeTab == 0) { if (this.activeTab == 0) {
this.cardsInfo = this.tabList; this.cardsInfo = this.tabList;
} else { } else {
let selected = this.tabList.find( t => t.name === tab) let selected = this.tabList.find((t) => t.name === tab);
this.cardsInfo = [selected]; this.cardsInfo = [selected];
} }
this.isShow = false; this.isShow = false;
...@@ -369,28 +391,32 @@ export default { ...@@ -369,28 +391,32 @@ export default {
inspectApi inspectApi
.info(uid) .info(uid)
.then((res) => { .then((res) => {
console.log(res) console.log(res);
const detailsInfo = sqlToData(res); const detailsInfo = sqlToData(res);
console.log("detailsInfo", detailsInfo); console.log("detailsInfo", detailsInfo);
this.detailsInfo = detailsInfo; this.detailsInfo = detailsInfo;
this.inspectionNumber = detailsInfo.inspectionNumber; this.inspectionNumber = detailsInfo.inspectionNumber;
if(detailsInfo.synchronization === 1) { if (detailsInfo.synchronization === 1) {
// 已同步数据的查看详情时,只展示'已巡检'的井道信息,过滤未巡检的井道 // 已同步数据的查看详情时,只展示'已巡检'的井道信息,过滤未巡检的井道
let defaultList = detailsInfo.originData let defaultList = detailsInfo.originData;
this.cardsInfo = this.tabList = defaultList.filter(building => { this.cardsInfo = this.tabList = defaultList.filter((building) => {
building.position = building.position.filter(pos => pos.status === 1) building.position = building.position.filter(
return building.position.length (pos) => pos.status === 1
}) );
return building.position.length;
});
} else { } else {
this.cardsInfo = this.tabList = detailsInfo.originData; this.cardsInfo = this.tabList = detailsInfo.originData;
} }
this.inspectionCode = detailsInfo.inspectionCode; this.inspectionCode = detailsInfo.inspectionCode;
// this.cardsInfo = this.tabList = detailsInfo.originData; // this.cardsInfo = this.tabList = detailsInfo.originData;
this.isSubmit = this.detailsInfo.originData.reduce((acc,cur) => { this.isSubmit = this.detailsInfo.originData
acc.push(...cur.position) .reduce((acc, cur) => {
return acc acc.push(...cur.position);
}, []).every(pos => pos.isSubmit === '' || pos.isSubmit === 1); return acc;
}, [])
.every((pos) => pos.isSubmit === "" || pos.isSubmit === 1);
this.isSign = !!this.detailsInfo.signImg; this.isSign = !!this.detailsInfo.signImg;
this.cardsInfo.forEach((item) => { this.cardsInfo.forEach((item) => {
this.tabs.push(item.name); this.tabs.push(item.name);
...@@ -432,11 +458,19 @@ export default { ...@@ -432,11 +458,19 @@ export default {
handlePopupConfirm(summary) { handlePopupConfirm(summary) {
this.detailsInfo.isSign = this.isSign = true; // 回显到文字显示区域 this.detailsInfo.isSign = this.isSign = true; // 回显到文字显示区域
this.detailsInfo.signImg = summary; // 回显到文字显示区域 this.detailsInfo.signImg = summary; // 回显到文字显示区域
this.submit("sign", this.detailsInfo.signImg); // const isException = this.detailsInfo.originData.some(
// (item) => item.status == 2
// );
// this.detailsInfo.isException = isException ? 1 : 0; // 巡检异常
this.submit(
"sign",
this.detailsInfo.signImg,
this.detailsInfo.isException
);
}, },
// 提交 // 提交
submit(type = "sign", value = "") { submit(type = "sign", value = "", isException) {
const all_data = this.all_data; //获取全部数据 const all_data = this.all_data; //获取全部数据
let params = this.detailsInfo; let params = this.detailsInfo;
params.signImg = value; params.signImg = value;
...@@ -463,12 +497,13 @@ export default { ...@@ -463,12 +497,13 @@ export default {
addLog(log_list).then((res) => { addLog(log_list).then((res) => {
console.log("日志文件写入成功"); console.log("日志文件写入成功");
}); });
if(type === 'sign') { if (type === "sign") {
inspectApi.updateSignImg({ inspectApi.updateSignImg({
id: params.id, id: params.id,
signImg: params.signImg, signImg: params.signImg,
synFlag: 0 synFlag: 0,
}) isException,
});
} }
uni.showToast({ uni.showToast({
title: type == "sign" ? "签字成功" : "同步成功", title: type == "sign" ? "签字成功" : "同步成功",
...@@ -500,17 +535,19 @@ export default { ...@@ -500,17 +535,19 @@ export default {
} }
}, },
openDialog(val) { openDialog(val) {
if(val) { if (val) {
let data = dataToSql(this.detailsInfo) let data = dataToSql(this.detailsInfo);
this.list = [{ this.list = [
{
...data, ...data,
id: this.uid id: this.uid,
}] },
];
} else { } else {
this.list = [] this.list = [];
}
this.showSyncDialog = val
} }
this.showSyncDialog = val;
},
}, },
}; };
</script> </script>
...@@ -643,6 +680,10 @@ export default { ...@@ -643,6 +680,10 @@ export default {
color: #3774f6; color: #3774f6;
line-height: 28.8px; line-height: 28.8px;
font-weight: 400; font-weight: 400;
&.disabled-btn {
color: #c7c7c7;
border-color: #c7c7c7;
}
} }
.action-container { .action-container {
display: flex; display: flex;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论