|
@@ -3,7 +3,7 @@
|
|
|
<div class="records">
|
|
|
<div class="header">
|
|
|
<el-button type="primary" @click="handleSave">保存</el-button>
|
|
|
- <el-button>导出</el-button>
|
|
|
+ <el-button @click="handleExport">导出</el-button>
|
|
|
</div>
|
|
|
<h3 class="title">基本信息</h3>
|
|
|
<div class="content">
|
|
@@ -11,47 +11,59 @@
|
|
|
<div class="line">
|
|
|
<span>勘验次数:</span>
|
|
|
<span>第</span>
|
|
|
- <el-input class="input" v-model="data.times" placeholder="" style="width: 80px;" />
|
|
|
+ <el-input class="input" v-model="data.count" placeholder="" style="width: 80px;" />
|
|
|
<span>次勘验</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="line">
|
|
|
<span>勘验时间:</span>
|
|
|
<div>
|
|
|
- <el-input class="input" :maxlength="4" type="text" v-model="data.start.year" placeholder=""
|
|
|
+ <el-input class="input" :maxlength="4" type="text" v-model="data.startTime.year" placeholder=""
|
|
|
style="width: 80px;" />
|
|
|
<span>年</span>
|
|
|
- <el-input class="input" :maxlength="2" type="text" v-model="data.start.month" placeholder=""
|
|
|
+ <el-input class="input" :maxlength="2" type="text" v-model="data.startTime.month" placeholder=""
|
|
|
style="width: 80px;" />
|
|
|
<span>月</span>
|
|
|
- <el-input class="input" :maxlength="2" type="text" v-model="data.start.day" placeholder=""
|
|
|
+ <el-input class="input" :maxlength="2" type="text" v-model="data.startTime.day" placeholder=""
|
|
|
style="width: 80px;" />
|
|
|
<span>日</span>
|
|
|
+ <el-input class="input" :maxlength="2" type="text" v-model="data.startTime.hour" placeholder=""
|
|
|
+ style="width: 80px;" />
|
|
|
+ <span>时</span>
|
|
|
+ <el-input class="input" :maxlength="2" type="text" v-model="data.startTime.min" placeholder=""
|
|
|
+ style="width: 80px;" />
|
|
|
+ <span>分</span>
|
|
|
</div>
|
|
|
<span style="width: 60px;text-align: center">至</span>
|
|
|
<div>
|
|
|
- <el-input class="input" :maxlength="4" v-model="data.end.year" placeholder="" style="width: 80px;" />
|
|
|
+ <el-input class="input" :maxlength="4" v-model="data.endTime.year" placeholder="" style="width: 80px;" />
|
|
|
<span>年</span>
|
|
|
- <el-input class="input" :maxlength="2" v-model="data.end.month" placeholder="" style="width: 80px;" />
|
|
|
+ <el-input class="input" :maxlength="2" v-model="data.endTime.month" placeholder="" style="width: 80px;" />
|
|
|
<span>月</span>
|
|
|
- <el-input class="input" :maxlength="2" v-model="data.end.day" placeholder="" style="width: 80px;" />
|
|
|
+ <el-input class="input" :maxlength="2" v-model="data.endTime.day" placeholder="" style="width: 80px;" />
|
|
|
<span>日</span>
|
|
|
+ <el-input class="input" :maxlength="2" type="text" v-model="data.endTime.hour" placeholder=""
|
|
|
+ style="width: 80px;" />
|
|
|
+ <span>时</span>
|
|
|
+ <el-input class="input" :maxlength="2" type="text" v-model="data.endTime.min" placeholder=""
|
|
|
+ style="width: 80px;" />
|
|
|
+ <span>分</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="line">
|
|
|
<span>勘验地点:</span>
|
|
|
- <el-input class="input" type="tel" v-model="data.location" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input class="input" type="tel" v-model="data.address" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
<div class="line">
|
|
|
<span>勘验人员姓名、单位、职务(含技术职务):</span>
|
|
|
- <el-input class="input" type="tel" v-model="data.job" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input class="input" type="tel" v-model="data.userInfo" placeholder="" style="width: 100%;" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="line">
|
|
|
<span>勘验气象条件(天气、风力、温度):</span>
|
|
|
- <el-input class="input" type="tel" v-model="data.condition" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input class="input" type="tel" v-model="data.weather" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
|
|
|
<div class="textarea">
|
|
@@ -61,32 +73,32 @@
|
|
|
</div>
|
|
|
<div class="textarea">
|
|
|
<span>一、环境勘验</span>
|
|
|
- <el-input type="textarea" :rows="4" v-model="data.situationEnv" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input type="textarea" :rows="4" v-model="data.environment" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
|
|
|
<div class="textarea">
|
|
|
<span>二、初步勘验</span>
|
|
|
- <el-input type="textarea" :rows="4" v-model="data.situationPrimary" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input type="textarea" :rows="4" v-model="data.firstInquest" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
|
|
|
<div class="textarea">
|
|
|
<span>三、细项勘验</span>
|
|
|
- <el-input type="textarea" :rows="4" v-model="data.situationDetail" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input type="textarea" :rows="4" v-model="data.carefulInquest" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
|
|
|
<div class="textarea">
|
|
|
<span>四、专项勘验</span>
|
|
|
- <el-input type="textarea" :rows="6" v-model="data.situationTask" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input type="textarea" :rows="6" v-model="data.specialInquest" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
|
|
|
<div class="textarea">
|
|
|
<span>提取物品描述:</span>
|
|
|
- <el-input type="textarea" :rows="6" v-model="data.objectDesc" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input type="textarea" :rows="6" v-model="data.itemDescription" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
|
|
|
<div class="textarea">
|
|
|
<span>现场拍照制图描述:</span>
|
|
|
- <el-input type="textarea" :rows="6" v-model="data.sceneDesc" placeholder="" style="width: 100%;" />
|
|
|
+ <el-input type="textarea" :rows="6" v-model="data.imgDescription" placeholder="" style="width: 100%;" />
|
|
|
</div>
|
|
|
|
|
|
<div class="info">
|
|
@@ -94,47 +106,47 @@
|
|
|
<div class="inner">
|
|
|
<div class="sec">
|
|
|
<span>勘验负责人</span>
|
|
|
- <el-input class="input" v-model="data.start.month" placeholder="" />
|
|
|
+ <el-input class="input" v-model="data.leader" placeholder="" />
|
|
|
</div>
|
|
|
|
|
|
<div class="sec">
|
|
|
<span> 记录人</span>
|
|
|
- <el-input class="input" v-model="data.start.month" placeholder="" />
|
|
|
+ <el-input class="input" v-model="data.recorder" placeholder="" />
|
|
|
</div>
|
|
|
|
|
|
<div class="sec">
|
|
|
<span>勘验人</span>
|
|
|
- <el-input class="input" v-model="data.start.month" placeholder="" />
|
|
|
+ <el-input class="input" v-model="data.inspector" placeholder="" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="gap"></div>
|
|
|
<!-- 证人 -->
|
|
|
- <template v-for="index of witnesses">
|
|
|
- <div class="witness">
|
|
|
+ <template v-for="item of data.witnessInfo">
|
|
|
+ <div class="witnessInfo">
|
|
|
<span class="sub-tit">证人信息:</span>
|
|
|
<div class="line">
|
|
|
<span>证人或当事人:</span>
|
|
|
- <el-input class="input" v-model="data.witness[index - 1].name" placeholder="" style="width: 180px;" />
|
|
|
+ <el-input class="input" v-model="item.name" placeholder="" style="width: 180px;" />
|
|
|
<div>
|
|
|
- <el-input class="input" v-model="data.witness[index - 1].year" placeholder="" style="width: 80px;" />
|
|
|
+ <el-input class="input" v-model="item.year" placeholder="" style="width: 80px;" />
|
|
|
<span>年</span>
|
|
|
- <el-input class="input" v-model="data.witness[index - 1].month" placeholder="" style="width: 80px;" />
|
|
|
+ <el-input class="input" v-model="item.month" placeholder="" style="width: 80px;" />
|
|
|
<span>月</span>
|
|
|
- <el-input class="input" v-model="data.witness[index - 1].day" placeholder="" style="width: 80px;" />
|
|
|
+ <el-input class="input" v-model="item.day" placeholder="" style="width: 80px;" />
|
|
|
<span>日</span>
|
|
|
</div>
|
|
|
|
|
|
<span style="margin-left:50px">身份证件号码:</span>
|
|
|
- <el-input class="input" v-model="data.witness[index - 1].id" placeholder="" style="width: 280px;" />
|
|
|
+ <el-input class="input" v-model="item.id" placeholder="" style="width: 280px;" />
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<div class="btn-container">
|
|
|
- <el-button class="btn" @click="addWitness">+新增</el-button>
|
|
|
+ <el-button class="btn" @click="addwitnessInfo">+新增</el-button>
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
@@ -146,33 +158,47 @@
|
|
|
<script setup>
|
|
|
import { onMounted, ref, watch } from 'vue';
|
|
|
import { reactive } from 'vue'
|
|
|
+import {
|
|
|
+ getCaseInquestInfo,
|
|
|
+ saveCaseInquestInfo,
|
|
|
+ exportCaseInquestInfo
|
|
|
+} from "@/store/case";
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
+import saveAs from "@/util/file-serve";
|
|
|
const props = defineProps({ caseId: Number })
|
|
|
|
|
|
console.log(props)
|
|
|
|
|
|
const data = reactive({
|
|
|
- times: "",
|
|
|
- start: {
|
|
|
+ count: "",
|
|
|
+ startTime: {
|
|
|
year: "",
|
|
|
month: "",
|
|
|
- day: ""
|
|
|
+ day: "",
|
|
|
+ hour: "",
|
|
|
+ min: ""
|
|
|
},
|
|
|
- end: {
|
|
|
+ endTime: {
|
|
|
year: "",
|
|
|
month: "",
|
|
|
- day: ""
|
|
|
+ day: "",
|
|
|
+ hour: "",
|
|
|
+ min: ""
|
|
|
},
|
|
|
- location: '',
|
|
|
- job: '',
|
|
|
- condition: '',
|
|
|
+ address: '',
|
|
|
+ userInfo: '',
|
|
|
+ weather: '',
|
|
|
situation: '',
|
|
|
- situationEnv: '', //环境勘验
|
|
|
- situationPrimary: '', //初步勘验
|
|
|
- situationDetail: '', //初步勘验
|
|
|
- situationTask: '', //专项勘验
|
|
|
- objectDesc: '',
|
|
|
- sceneDesc: '',
|
|
|
- witness: [{
|
|
|
+ environment: '', //环境勘验
|
|
|
+ firstInquest: '', //初步勘验
|
|
|
+ carefulInquest: '', //细项勘验
|
|
|
+ specialInquest: '', //专项勘验
|
|
|
+ itemDescription: '',
|
|
|
+ imgDescription: '',
|
|
|
+ leader: '',
|
|
|
+ recorder: '',
|
|
|
+ inspector: '',
|
|
|
+ witnessInfo: [{
|
|
|
name: "",
|
|
|
year: "",
|
|
|
month: "",
|
|
@@ -189,27 +215,37 @@ const data = reactive({
|
|
|
|
|
|
watch(data, newValue => {
|
|
|
// data.userName = newValue.userName.replace(/[^0-9]/g, '');
|
|
|
- const sMonth = newValue.start.month.replace(/[^0-9]/g, '');
|
|
|
- const sDay = newValue.start.day.replace(/[^0-9]/g, '');
|
|
|
-
|
|
|
- const eMonth = newValue.end.month.replace(/[^0-9]/g, '');
|
|
|
- const eDay = newValue.end.day.replace(/[^0-9]/g, '');
|
|
|
-
|
|
|
- data.start.year = newValue.start.year.replace(/[^0-9]/g, '');
|
|
|
- data.start.month = Number(sMonth) > 12 ? '12' : sMonth;
|
|
|
- data.start.day = Number(sDay) > 31 ? '31' : sDay;
|
|
|
-
|
|
|
- data.end.year = newValue.end.year.replace(/[^0-9]/g, '');
|
|
|
- data.end.month = Number(eMonth) > 12 ? '12' : eMonth;
|
|
|
- data.end.day = Number(eDay) > 31 ? '31' : eDay;
|
|
|
-
|
|
|
- newValue.witness.forEach((item, key) => {
|
|
|
- const year = newValue.witness[key].year.replace(/[^0-9]/g, '');
|
|
|
- const month = newValue.witness[key].month.replace(/[^0-9]/g, '');
|
|
|
- const day = newValue.witness[key].day.replace(/[^0-9]/g, '');
|
|
|
- data.witness[key].year = year;
|
|
|
- data.witness[key].month = Number(month) > 12 ? '12' : month;
|
|
|
- data.witness[key].day = Number(day) > 31 ? '31' : day;
|
|
|
+ const sMonth = newValue.startTime.month.replace(/[^0-9]/g, '');
|
|
|
+ const sDay = newValue.startTime.day.replace(/[^0-9]/g, '');
|
|
|
+ const sHour = newValue.startTime.hour.replace(/[^0-9]/g, '');
|
|
|
+ const sMin = newValue.startTime.min.replace(/[^0-9]/g, '');
|
|
|
+
|
|
|
+ const eMonth = newValue.endTime.month.replace(/[^0-9]/g, '');
|
|
|
+ const eDay = newValue.endTime.day.replace(/[^0-9]/g, '');
|
|
|
+ const eHour = newValue.endTime.hour.replace(/[^0-9]/g, '');
|
|
|
+ const eMin = newValue.endTime.min.replace(/[^0-9]/g, '');
|
|
|
+
|
|
|
+
|
|
|
+ data.startTime.year = newValue.startTime.year.replace(/[^0-9]/g, '');
|
|
|
+ data.startTime.month = Number(sMonth) > 12 ? '12' : sMonth;
|
|
|
+ data.startTime.day = Number(sDay) > 31 ? '31' : sDay;
|
|
|
+ data.startTime.hour = Number(sDay) > 24 ? '24' : sHour;
|
|
|
+ data.startTime.min = Number(sMin) > 60 ? '0' : sMin;
|
|
|
+
|
|
|
+ data.endTime.year = newValue.endTime.year.replace(/[^0-9]/g, '');
|
|
|
+ data.endTime.month = Number(eMonth) > 12 ? '12' : eMonth;
|
|
|
+ data.endTime.day = Number(eDay) > 31 ? '31' : eDay;
|
|
|
+ data.endTime.hour = Number(eHour) > 24 ? '24' : eHour;
|
|
|
+ data.endTime.min = Number(eMin) > 60 ? '0' : eMin;
|
|
|
+
|
|
|
+
|
|
|
+ newValue.witnessInfo.forEach((item, key) => {
|
|
|
+ const year = newValue.witnessInfo[key].year.replace(/[^0-9]/g, '');
|
|
|
+ const month = newValue.witnessInfo[key].month.replace(/[^0-9]/g, '');
|
|
|
+ const day = newValue.witnessInfo[key].day.replace(/[^0-9]/g, '');
|
|
|
+ data.witnessInfo[key].year = year;
|
|
|
+ data.witnessInfo[key].month = Number(month) > 12 ? '12' : month;
|
|
|
+ data.witnessInfo[key].day = Number(day) > 31 ? '31' : day;
|
|
|
})
|
|
|
|
|
|
}, {
|
|
@@ -217,13 +253,21 @@ watch(data, newValue => {
|
|
|
deep: true
|
|
|
})
|
|
|
|
|
|
-const witnesses = ref(2)
|
|
|
-onMounted(() => {
|
|
|
+onMounted(async () => {
|
|
|
+ const res = await getCaseInquestInfo(props.caseId);
|
|
|
+ console.log('res', res)
|
|
|
+ for (var k in data) {
|
|
|
+ if (res.data && res.data.hasOwnProperty(k)) {
|
|
|
+ console.log("Key is " + k)
|
|
|
+ data[k] = res.data[k]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
})
|
|
|
|
|
|
-const addWitness = () => {
|
|
|
- witnesses.value += 1
|
|
|
- data.witness.push({
|
|
|
+const addwitnessInfo = () => {
|
|
|
+ // witnessInfoes.value += 1
|
|
|
+ data.witnessInfo.push({
|
|
|
name: "",
|
|
|
year: "",
|
|
|
month: "",
|
|
@@ -232,9 +276,17 @@ const addWitness = () => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-const handleSave = () => {
|
|
|
+const handleSave = async () => {
|
|
|
console.log('data', data)
|
|
|
-
|
|
|
+ const res = await saveCaseInquestInfo(props.caseId, data);
|
|
|
+ if (res.code === 0) {
|
|
|
+ ElMessage.success('保存成功!')
|
|
|
+ }
|
|
|
+}
|
|
|
+const handleExport = async () => {
|
|
|
+ const res = await exportCaseInquestInfo(props.caseId);
|
|
|
+ console.log('res', res)
|
|
|
+ saveAs(res, `勘验笔录-${props.caseId}.docx`)
|
|
|
}
|
|
|
|
|
|
</script>
|
|
@@ -247,7 +299,7 @@ const handleSave = () => {
|
|
|
|
|
|
.header {
|
|
|
display: flex;
|
|
|
- justify-content: flex-end;
|
|
|
+ justify-content: flex-endTime;
|
|
|
}
|
|
|
|
|
|
.input {
|
|
@@ -318,7 +370,7 @@ const handleSave = () => {
|
|
|
|
|
|
}
|
|
|
|
|
|
-.witness {
|
|
|
+.witnessInfo {
|
|
|
background: #F5F5F5;
|
|
|
padding: 15px;
|
|
|
margin-top: 20px;
|