|
@@ -2,7 +2,7 @@
|
|
<template>
|
|
<template>
|
|
<!-- <iframe style="width:100%;height: 100%;" src="./static/html/FG.html" frameborder="0"></iframe> -->
|
|
<!-- <iframe style="width:100%;height: 100%;" src="./static/html/FG.html" frameborder="0"></iframe> -->
|
|
|
|
|
|
- <div class="ask-content">
|
|
|
|
|
|
+ <div class="ask-content" :class="{ downMode }" v-if="data">
|
|
<!-- <Write v-if="isWrite" :text="text" :textIndex="textIndex" @onTextConfirm="onTextConfirm"> </Write> -->
|
|
<!-- <Write v-if="isWrite" :text="text" :textIndex="textIndex" @onTextConfirm="onTextConfirm"> </Write> -->
|
|
<div v-show="!isWrite" class="num-box">
|
|
<div v-show="!isWrite" class="num-box">
|
|
<span>第</span>
|
|
<span>第</span>
|
|
@@ -13,7 +13,10 @@
|
|
</div>
|
|
</div>
|
|
<div v-show="!isWrite" class="num-box" style="padding-right: 114px">
|
|
<div v-show="!isWrite" class="num-box" style="padding-right: 114px">
|
|
<span>第</span>
|
|
<span>第</span>
|
|
- <div class="input-box" contenteditable></div>
|
|
|
|
|
|
+ <div class="input-box">
|
|
|
|
+ <input style="text-align: center; width: 100%" type="text" v-model="data.times" />
|
|
|
|
+ <div class="content-box">{{ data.times }}</div>
|
|
|
|
+ </div>
|
|
<span>次</span>
|
|
<span>次</span>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -22,62 +25,120 @@
|
|
<div class="container" v-show="!isWrite">
|
|
<div class="container" v-show="!isWrite">
|
|
<div class="line">
|
|
<div class="line">
|
|
<span>时间</span>
|
|
<span>时间</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.startTime" />
|
|
|
|
+ <div class="content-box">{{ data.startTime }}</div>
|
|
|
|
+ </div>
|
|
<span>至</span>
|
|
<span>至</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.endTime" />
|
|
|
|
+ <div class="content-box">{{ data.endTime }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="line">
|
|
<div class="line">
|
|
<span>地点</span>
|
|
<span>地点</span>
|
|
- <div class="write-line left" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line left">
|
|
|
|
+ <input type="text" v-model="data.address" />
|
|
|
|
+ <div class="content-box">{{ data.address }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="line">
|
|
<div class="line">
|
|
<span v-if="type == '1'">询问/<span class="through">讯问</span>人</span>
|
|
<span v-if="type == '1'">询问/<span class="through">讯问</span>人</span>
|
|
<span v-else><span class="through">询问</span>/讯问人</span>
|
|
<span v-else><span class="through">询问</span>/讯问人</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.asker" />
|
|
|
|
+ <div class="content-box">{{ data.asker }}</div>
|
|
|
|
+ </div>
|
|
<span>工作单位</span>
|
|
<span>工作单位</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.askCompany" />
|
|
|
|
+ <div class="content-box">{{ data.askCompany }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="line">
|
|
<div class="line">
|
|
<span>记录人</span>
|
|
<span>记录人</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.reporter" />
|
|
|
|
+ <div class="content-box">{{ data.reporter }}</div>
|
|
|
|
+ </div>
|
|
<span>工作单位</span>
|
|
<span>工作单位</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.reporterCompany" />
|
|
|
|
+ <div class="content-box">{{ data.reporterCompany }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="line">
|
|
<div class="line">
|
|
<span v-if="type == '1'">被询问/<span class="through">讯问</span>人</span>
|
|
<span v-if="type == '1'">被询问/<span class="through">讯问</span>人</span>
|
|
<span v-else>被<span class="through">询问</span>/讯问人</span>
|
|
<span v-else>被<span class="through">询问</span>/讯问人</span>
|
|
- <div style="flex: 0.5" class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div style="flex: 0.5" class="write-line">
|
|
|
|
+ <input type="text" v-model="data.askerBy" />
|
|
|
|
+ <div class="content-box">{{ data.askerBy }}</div>
|
|
|
|
+ </div>
|
|
<span>性别</span>
|
|
<span>性别</span>
|
|
- <div style="flex: 0.3" class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div style="flex: 0.3" class="write-line">
|
|
|
|
+ <input type="text" v-model="data.sex" />
|
|
|
|
+ <div class="content-box">{{ data.sex }}</div>
|
|
|
|
+ </div>
|
|
<span>年龄</span>
|
|
<span>年龄</span>
|
|
- <div style="flex: 0.3" class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div style="flex: 0.3" class="write-line">
|
|
|
|
+ <input type="text" v-model="data.age" />
|
|
|
|
+ <div class="content-box">{{ data.age }}</div>
|
|
|
|
+ </div>
|
|
<span>出生日期</span>
|
|
<span>出生日期</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.birth" />
|
|
|
|
+ <div class="content-box">{{ data.birth }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="line">
|
|
<div class="line">
|
|
<span>身份证件种类及号码</span>
|
|
<span>身份证件种类及号码</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
- <span>是否人大代表</span>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.id" />
|
|
|
|
+ <div class="content-box">{{ data.id }}</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-for="(i, index) in isnotList.options" @click="checkOptions(isnotList, index)">
|
|
|
|
+ <ui-icon :type="data.NPC.check == i.id ? 'rb_y' : 'rb_n'"></ui-icon>
|
|
|
|
+ <span>{{ i.title }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <span>人大代表</span>
|
|
</div>
|
|
</div>
|
|
<div class="line">
|
|
<div class="line">
|
|
<span>现住址</span>
|
|
<span>现住址</span>
|
|
- <div class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line">
|
|
|
|
+ <input type="text" v-model="data.adressNow" />
|
|
|
|
+ <div class="content-box">{{ data.adressNow }}</div>
|
|
|
|
+ </div>
|
|
<span>联系方式</span>
|
|
<span>联系方式</span>
|
|
- <div style="flex: 0.3" class="write-line" contenteditable></div>
|
|
|
|
|
|
+ <div style="flex: 0.3" class="write-line">
|
|
|
|
+ <input type="text" v-model="data.phoneNumber" />
|
|
|
|
+ <div class="content-box">{{ data.phoneNumber }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="line">
|
|
<div class="line">
|
|
<span>户籍所在地</span>
|
|
<span>户籍所在地</span>
|
|
- <div class="write-line left" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line left">
|
|
|
|
+ <input type="text" v-model="data.residence" />
|
|
|
|
+ <div class="content-box">{{ data.residence }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
<div class="line worap">
|
|
<div class="line worap">
|
|
<span v-if="type == '1'" style="line-height: 40px"> (口头传唤/被扭送/自动投案的被询问/<span class="through">讯问</span>人于</span>
|
|
<span v-if="type == '1'" style="line-height: 40px"> (口头传唤/被扭送/自动投案的被询问/<span class="through">讯问</span>人于</span>
|
|
<span v-else style="line-height: 40px"> (口头传唤/被扭送/自动投案的被<span class="through">询问</span>/讯问人于</span>
|
|
<span v-else style="line-height: 40px"> (口头传唤/被扭送/自动投案的被<span class="through">询问</span>/讯问人于</span>
|
|
- <div class="write-line" style="width: 40%" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line" style="width: 40%">
|
|
|
|
+ <input type="text" v-model="data.reachTime" />
|
|
|
|
+ <div class="content-box">{{ data.reachTime }}</div>
|
|
|
|
+ </div>
|
|
<span style="line-height: 40px"> 到达,</span>
|
|
<span style="line-height: 40px"> 到达,</span>
|
|
- <div class="write-line" style="" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line" style="">
|
|
|
|
+ <input type="text" v-model="data.leaveTime" />
|
|
|
|
+ <div class="content-box">{{ data.leaveTime }}</div>
|
|
|
|
+ </div>
|
|
<span style="line-height: 40px"> 离开,</span>
|
|
<span style="line-height: 40px"> 离开,</span>
|
|
<span style="line-height: 40px"> 本人签名:</span>
|
|
<span style="line-height: 40px"> 本人签名:</span>
|
|
- <div class="write-line" style="" contenteditable></div>
|
|
|
|
|
|
+ <div class="write-line" style="">
|
|
|
|
+ <input type="text" v-model="data.sign" />
|
|
|
|
+ <div class="content-box">{{ data.sign }}</div>
|
|
|
|
+ </div>
|
|
<span> )。</span>
|
|
<span> )。</span>
|
|
</div>
|
|
</div>
|
|
<div class="more-line" @click="goWrite" id="line-box">
|
|
<div class="more-line" @click="goWrite" id="line-box">
|
|
@@ -93,60 +154,130 @@
|
|
<div class="bottom-name" v-show="!isWrite">
|
|
<div class="bottom-name" v-show="!isWrite">
|
|
<span v-if="type == '1'">被询问人:</span>
|
|
<span v-if="type == '1'">被询问人:</span>
|
|
<span v-else>被讯问人:</span>
|
|
<span v-else>被讯问人:</span>
|
|
- <div style="flex: 1" contenteditable></div>
|
|
|
|
|
|
+ <div style="flex: 1">
|
|
|
|
+ <input type="text" v-model="data.askerBys" />
|
|
|
|
+ <div class="content-box">{{ data.askerBys }}</div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
-import { reactive, ref, toRefs, onBeforeMount, onMounted, defineProps, defineEmits } from 'vue';
|
|
|
|
-import { router } from '@/router';
|
|
|
|
-import Write from './write/index.vue';
|
|
|
|
-import { bus } from '@/hook/useGraphic';
|
|
|
|
|
|
+import { reactive, ref, toRefs, onBeforeMount, onMounted, defineProps, defineEmits } from "vue";
|
|
|
|
+import { router } from "@/router";
|
|
|
|
+import Write from "./write/index.vue";
|
|
|
|
+import { bus } from "@/hook/useGraphic";
|
|
|
|
+import { tables } from "@/store/tables";
|
|
|
|
+import { tablesInfo, setData } from "./data";
|
|
|
|
+
|
|
|
|
+const data = ref(null);
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
downMode: {
|
|
downMode: {
|
|
type: Boolean,
|
|
type: Boolean,
|
|
default: false,
|
|
default: false,
|
|
},
|
|
},
|
|
|
|
+ isDownloadShow: { type: Boolean, default: false },
|
|
text: {
|
|
text: {
|
|
type: String,
|
|
type: String,
|
|
- default: '',
|
|
|
|
|
|
+ default: "",
|
|
},
|
|
},
|
|
page: {
|
|
page: {
|
|
type: Number,
|
|
type: Number,
|
|
default: 1,
|
|
default: 1,
|
|
},
|
|
},
|
|
});
|
|
});
|
|
-const emits = defineEmits(['onTextConfirm', 'goWrite']);
|
|
|
|
|
|
+
|
|
|
|
+const isnotList = ref({
|
|
|
|
+ check: 0,
|
|
|
|
+ type: "NPC",
|
|
|
|
+ options: [
|
|
|
|
+ {
|
|
|
|
+ id: 1,
|
|
|
|
+ title: "是",
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ id: 2,
|
|
|
|
+ title: "否",
|
|
|
|
+ },
|
|
|
|
+ ],
|
|
|
|
+});
|
|
|
|
+const checkOptions = (item, index) => {
|
|
|
|
+ item.check = item.options[index].id;
|
|
|
|
+ data.value[item.type].check = item.check;
|
|
|
|
+};
|
|
|
|
+const emits = defineEmits(["onTextConfirm", "goWrite"]);
|
|
const isWrite = ref(false);
|
|
const isWrite = ref(false);
|
|
// const text = ref('');
|
|
// const text = ref('');
|
|
const type = ref(router.currentRoute.value.query.type);
|
|
const type = ref(router.currentRoute.value.query.type);
|
|
// const page = ref(1);
|
|
// const page = ref(1);
|
|
const textIndex = ref(0);
|
|
const textIndex = ref(0);
|
|
-const onTextConfirm = (data) => {
|
|
|
|
- text.value = data.text;
|
|
|
|
- // page.value = data.page;
|
|
|
|
- isWrite.value = false;
|
|
|
|
- emits('onTextConfirm', data);
|
|
|
|
-};
|
|
|
|
|
|
+// const onTextConfirm = (data) => {
|
|
|
|
+// console.error(data);
|
|
|
|
+// text.value = data.text;
|
|
|
|
+// // page.value = data.page;
|
|
|
|
+// isWrite.value = false;
|
|
|
|
+// emits("onTextConfirm", data);
|
|
|
|
+// };
|
|
|
|
|
|
const goWrite = () => {
|
|
const goWrite = () => {
|
|
let text = window.getSelection();
|
|
let text = window.getSelection();
|
|
textIndex.value = text.anchorOffset;
|
|
textIndex.value = text.anchorOffset;
|
|
|
|
|
|
// isWrite.value = true;
|
|
// isWrite.value = true;
|
|
- emits('goWrite', { textIndex: textIndex.value });
|
|
|
|
|
|
+ emits("goWrite", { textIndex: textIndex.value });
|
|
};
|
|
};
|
|
// const handlerBus = (data) => {
|
|
// const handlerBus = (data) => {
|
|
// console.error(data);
|
|
// console.error(data);
|
|
// textIndex.value = data.textIndex;
|
|
// textIndex.value = data.textIndex;
|
|
// isWrite.value = true;
|
|
// isWrite.value = true;
|
|
// };
|
|
// };
|
|
|
|
+const saveHandler = () => {
|
|
|
|
+ const origin = tables.value;
|
|
|
|
+ data.value.text = props.text;
|
|
|
|
+ data.value.page = props.page;
|
|
|
|
+
|
|
|
|
+ let json = {};
|
|
|
|
+
|
|
|
|
+ if (type.value == "1") {
|
|
|
|
+ json = { type: "askOne", data: data.value };
|
|
|
|
+ } else {
|
|
|
|
+ json = { type: "askTwo", data: data.value };
|
|
|
|
+ }
|
|
|
|
+ return json;
|
|
|
|
+};
|
|
|
|
+defineExpose({ saveHandler });
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
- // bus.on('goWrite', handlerBus);
|
|
|
|
|
|
+ if (props.isDownloadShow) {
|
|
|
|
+ } else {
|
|
|
|
+ if (type.value == "1") {
|
|
|
|
+ setData("askOne");
|
|
|
|
+ } else {
|
|
|
|
+ setData("askTwo");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (type.value == "1") {
|
|
|
|
+ if (tablesInfo.askOne) {
|
|
|
|
+ data.value = tablesInfo.askOne;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (tablesInfo.askTwo) {
|
|
|
|
+ data.value = tablesInfo.askTwo;
|
|
|
|
+ }
|
|
|
|
+ console.error(tablesInfo);
|
|
|
|
+ }
|
|
});
|
|
});
|
|
</script>
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|
|
|
|
+.content-box {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ &.left {
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
+ }
|
|
|
|
+}
|
|
div[contenteditable] {
|
|
div[contenteditable] {
|
|
outline: none;
|
|
outline: none;
|
|
}
|
|
}
|
|
@@ -163,6 +294,18 @@ div[contenteditable] {
|
|
overflow: auto;
|
|
overflow: auto;
|
|
font-family: SimSun-Regular, SimSun;
|
|
font-family: SimSun-Regular, SimSun;
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
|
|
+ overflow-x: hidden;
|
|
|
|
+ .content-box {
|
|
|
|
+ display: none;
|
|
|
|
+ }
|
|
|
|
+ &.downMode {
|
|
|
|
+ input {
|
|
|
|
+ display: none;
|
|
|
|
+ }
|
|
|
|
+ .content-box {
|
|
|
|
+ display: flex;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.num-box {
|
|
.num-box {
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
@@ -215,6 +358,10 @@ div[contenteditable] {
|
|
padding: 0 10px;
|
|
padding: 0 10px;
|
|
outline: none;
|
|
outline: none;
|
|
flex: 1;
|
|
flex: 1;
|
|
|
|
+ input {
|
|
|
|
+ width: 100%;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
&.left {
|
|
&.left {
|
|
text-align: left;
|
|
text-align: left;
|
|
}
|
|
}
|