修改bug

This commit is contained in:
13684185576
2025-07-08 14:56:56 +08:00
parent 9f84ea1564
commit 477b1c3b22
17 changed files with 693 additions and 983 deletions

136
package-lock.json generated
View File

@ -2043,6 +2043,51 @@
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true "dev": true
}, },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"ssri": { "ssri": {
"version": "8.0.1", "version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@ -2051,6 +2096,28 @@
"requires": { "requires": {
"minipass": "^3.1.1" "minipass": "^3.1.1"
} }
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
}
} }
} }
}, },
@ -14550,75 +14617,6 @@
} }
} }
}, },
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-router": { "vue-router": {
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz",

View File

@ -160,6 +160,17 @@ export const jczdeleteList = (id) => {
method: "post" method: "post"
}); });
}; };
/*
*删除感知源
* return promise 实例对象
*/
export const gzydeleteList = (id) => {
return request({
// url: api + "/tbQwXfll/deleteList",
url: api + `/tbJczSxt/delEntity/${id}`,
method: "delete"
});
};
/* /*
*删除巡防力量 民警、辅警 *删除巡防力量 民警、辅警
* return promise 实例对象 * return promise 实例对象
@ -351,11 +362,10 @@ export const JczupdateJcz = (data) => {
}); });
}; };
// 删除检查站 // 删除检查站
export const JczdeleteById = (data) => { export const JczdeleteById = (id) => {
return request({ return request({
url: api + `/jcz/deleteById`, url: api + `/jcz/deleteById/${id}`,
method: "post", method: "delete"
data
}); });
}; };
//盘查管理 //盘查管理

View File

@ -15,7 +15,7 @@
:on-success="handlerSuccess" :on-success="handlerSuccess"
:before-upload="beforeImgUpload" :before-upload="beforeImgUpload"
> >
<template #default> <template #default v-if="props.limit>=fileList.length">
<el-icon> <Plus /> </el-icon> <el-icon> <Plus /> </el-icon>
</template> </template>
<template #file="{ file }"> <template #file="{ file }">

View File

@ -3,53 +3,29 @@
<div class="head_box"> <div class="head_box">
<span class="title">{{ pageInfo[pageType].title }}</span> <span class="title">{{ pageInfo[pageType].title }}</span>
<div> <div>
<el-button <el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
size="small"
type="primary"
v-if="['add', 'edit'].includes(pageType)"
@click="_onSave"
>保存</el-button
>
<el-button size="small" @click="close">关闭</el-button> <el-button size="small" @click="close">关闭</el-button>
</div> </div>
</div> </div>
<div class="cntinfo"> <div class="cntinfo">
<div class="flex align-center"> <div class="flex align-center">
报备单位 报备单位
<MOSTY.Department <MOSTY.Department v-model="listQuery.ssbmdm" placeholder="请选择部门" @getDepValue="changeDep" />
v-model="listQuery.ssbmdm"
placeholder="请选择部门"
@getDepValue="changeDep"
/>
</div> </div>
<el-form <el-form ref="formRef" class="info" :model="listQuery" :inline="true" :rules="rules">
ref="formRef"
class="info"
:model="listQuery"
:inline="true"
:rules="rules"
>
<div class="bblxItem"> <div class="bblxItem">
<div class="btItem">环林卡口设置</div> <div class="btItem">环林卡口设置</div>
<div class="info"> <div class="info">
<el-form-item> <el-form-item>
<ChooseTable <ChooseTable :deptment="deptment" v-if="!isDetail" :configer="{
:deptment="deptment"
v-if="!isDetail"
:configer="{
width: 800, width: 800,
lx: 'jcz', lx: 'jcz',
isRadio: true isRadio: true
}" }" v-model="listQuery.jczList" :dic="props.dic" />
v-model="listQuery.jczList"
:dic="props.dic"
/>
<div class="peolist" v-if="listQuery.jczList"> <div class="peolist" v-if="listQuery.jczList">
<el-tag type="primary" :key="item">{{ <el-tag type="primary" :key="item">{{ listQuery.jczList.jczmc }}</el-tag>
listQuery.jczList.jczmc
}}</el-tag>
</div> </div>
<div class="peolist" v-if="listQuery.jczmc && !listQuery.jczList"> <div class="peolist" v-if="listQuery.jczmc && !listQuery.jczList">
<el-tag type="primary" :key="item">{{ <el-tag type="primary" :key="item">{{
@ -63,37 +39,18 @@
<div class="btItem">班次设置</div> <div class="btItem">班次设置</div>
<div class="info"> <div class="info">
<el-form-item prop="kssj"> <el-form-item prop="kssj">
<el-time-picker <el-time-picker v-model="listQuery.bcKssj" :disabled="isDetail" placeholder="开始时间" format="HH:mm:ss"
v-model="listQuery.bcKssj" value-format="HH:mm:ss" />
:disabled="isDetail"
placeholder="开始时间"
format="HH:mm:ss"
value-format="HH:mm:ss"
/>
</el-form-item> </el-form-item>
<el-form-item prop="bcKts"> <el-form-item prop="bcKts">
<el-select <el-select clearable v-model="listQuery.bcKtsDict" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dic.D_QW_BC_KTS" :key="index" :label="item.label"
v-model="listQuery.bcKtsDict" :value="item.value"></el-option>
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dic.D_QW_BC_KTS"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="jssj"> <el-form-item prop="jssj">
<el-time-picker <el-time-picker v-model="listQuery.bcJssj" :disabled="isDetail" format="HH:mm:ss" placeholder="结束时间"
v-model="listQuery.bcJssj" value-format="HH:mm:ss" />
:disabled="isDetail"
format="HH:mm:ss"
placeholder="结束时间"
value-format="HH:mm:ss"
/>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
@ -101,42 +58,21 @@
<div class="btItem">负责人</div> <div class="btItem">负责人</div>
<div class="info"> <div class="info">
<el-form-item> <el-form-item>
<ChooseTable <ChooseTable :deptment="deptment" @change="handleFzr" v-if="!isDetail" :configer="{
:deptment="deptment"
@change="handleFzr"
v-if="!isDetail"
:configer="{
width: 700, width: 700,
lx: 'mj', lx: 'mj',
rowKey: 'id', rowKey: 'id',
isRadio: true isRadio: true
}" }" :dic="props.dic" />
:dic="props.dic"
/>
</el-form-item> </el-form-item>
<el-form-item prop="fzrXm"> <el-form-item prop="fzrXm">
<el-input <el-input readonly v-model="listQuery.fzrXm" placeholder="负责人" clearable />
readonly
v-model="listQuery.fzrXm"
placeholder="负责人"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item prop="fzrSfzh"> <el-form-item prop="fzrSfzh">
<el-input <el-input readonly v-model="listQuery.fzrSfzh" placeholder="身份证" clearable />
readonly
v-model="listQuery.fzrSfzh"
placeholder="身份证"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item prop="fzrLxdh"> <el-form-item prop="fzrLxdh">
<el-input <el-input readonly v-model="listQuery.fzrLxdh" placeholder="负责人电话" clearable />
readonly
v-model="listQuery.fzrLxdh"
placeholder="负责人电话"
clearable
/>
</el-form-item> </el-form-item>
</div> </div>
</div> </div>
@ -149,17 +85,11 @@
<div class="num"> <div class="num">
{{ mjData ? mjData.length : 0 }} {{ mjData ? mjData.length : 0 }}
</div> </div>
<ChooseTable <ChooseTable :deptment="deptment" v-if="!isDetail" :dic="props.dic" :configer="{
:deptment="deptment"
v-if="!isDetail"
:dic="props.dic"
:configer="{
lx: 'mj', lx: 'mj',
rowKey: 'ryid', rowKey: 'ryid',
placement: 'top-start' placement: 'top-start'
}" }" v-model="mjData" />
v-model="mjData"
/>
<div class="peolist"> <div class="peolist">
<el-tag type="primary" v-for="item in mjData" :key="item">{{ <el-tag type="primary" v-for="item in mjData" :key="item">{{
item.jlxm || item.xm item.jlxm || item.xm
@ -176,13 +106,8 @@
</div> </div>
<!-- :deptment="props.dep" <!-- :deptment="props.dep"
:dic="props.dic" --> :dic="props.dic" -->
<ChooseTable <ChooseTable :deptment="deptment" :dic="props.dic" v-if="!isDetail"
:deptment="deptment" :configer="{ lx: 'fj', placement: 'top-start' }" v-model="fjData" />
:dic="props.dic"
v-if="!isDetail"
:configer="{ lx: 'fj', placement: 'top-start' }"
v-model="fjData"
/>
<div class="peolist"> <div class="peolist">
<el-tag type="primary" v-for="item in fjData" :key="item">{{ <el-tag type="primary" v-for="item in fjData" :key="item">{{
item.jlxm || item.xm item.jlxm || item.xm
@ -202,24 +127,13 @@
<div class="num"> <div class="num">
{{ listQuery.zdList ? listQuery.zdList.length : 0 }} {{ listQuery.zdList ? listQuery.zdList.length : 0 }}
</div> </div>
<ChooseTable <ChooseTable :dic="props.dic" v-if="!isDetail" :deptment="deptment" :configer="{
:dic="props.dic"
v-if="!isDetail"
:deptment="deptment"
:configer="{
lx: 'znzb', lx: 'znzb',
rowKey: 'id', rowKey: 'id',
placement: 'top-start' placement: 'top-start'
}" }" v-model="listQuery.zdList" />
v-model="listQuery.zdList"
/>
<div class="peolist"> <div class="peolist">
<el-tag <el-tag type="primary" v-for="item in listQuery.zdList" :key="item">{{ item.sbmc }}</el-tag>
type="primary"
v-for="item in listQuery.zdList"
:key="item"
>{{ item.sbmc }}</el-tag
>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
@ -270,24 +184,13 @@
<div class="num"> <div class="num">
{{ listQuery.clList ? listQuery.clList.length : 0 }} {{ listQuery.clList ? listQuery.clList.length : 0 }}
</div> </div>
<ChooseTable <ChooseTable :deptment="deptment" v-if="!isDetail" :dic="props.dic" :configer="{
:deptment="deptment"
v-if="!isDetail"
:dic="props.dic"
:configer="{
lx: 'cl', lx: 'cl',
rowKey: 'id', rowKey: 'id',
placement: 'top-start' placement: 'top-start'
}" }" v-model="listQuery.clList" />
v-model="listQuery.clList"
/>
<div class="peolist"> <div class="peolist">
<el-tag <el-tag type="primary" v-for="item in listQuery.clList" :key="item">{{ item.cph }}</el-tag>
type="primary"
v-for="item in listQuery.clList"
:key="item"
>{{ item.cph }}</el-tag
>
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
@ -298,11 +201,7 @@
<div class="btItem">警用器械</div> <div class="btItem">警用器械</div>
<div class="info"> <div class="info">
<el-form-item> <el-form-item>
<div <div v-for="(item, index) in listQuery.qxList" :key="index" style="width: 30%; margin-bottom: 10px">
v-for="(item, index) in listQuery.qxList"
:key="index"
style="width: 30%; margin-bottom: 10px"
>
<div class="flex"> <div class="flex">
<div style="width: 30%">{{ item.qxmc }}</div> <div style="width: 30%">{{ item.qxmc }}</div>
<el-input-number v-model="item.qxsl" :step="1" /> <el-input-number v-model="item.qxsl" :step="1" />
@ -326,7 +225,7 @@ import { timeValidate } from "@/utils/tools.js";
const props = defineProps({ const props = defineProps({
dic: { dic: {
type: Object, type: Object,
default: () => {} default: () => { }
}, },
isDetail: { isDetail: {
type: Boolean, type: Boolean,
@ -414,9 +313,11 @@ const _onSave = () => {
case "07": case "07":
listQuery.value.bcKts = 8; listQuery.value.bcKts = 8;
} }
if (listQuery.value.jczList) {
listQuery.value.jczid = listQuery.value.jczList.id; listQuery.value.jczid = listQuery.value.jczList.id;
listQuery.value.jczmc = listQuery.value.jczList.jczmc; listQuery.value.jczmc = listQuery.value.jczList.jczmc;
}
if (pageType.value == "add") { if (pageType.value == "add") {
jczsavel(listQuery.value).then((res) => { jczsavel(listQuery.value).then((res) => {
ElMessage({ message: "新增成功", type: "success" }); ElMessage({ message: "新增成功", type: "success" });
@ -438,7 +339,7 @@ const ChegeMj = (val) => {
ryXm: item.xm, ryXm: item.xm,
rysfzh: item.sfzh, rysfzh: item.sfzh,
ryJzlx: item.fl, ryJzlx: item.fl,
ryMfjilb: item.ryid, ryMfjilb: item.ryId ? item.ryId : "",
ryLxdh: item.lxdh ryLxdh: item.lxdh
}; };
}); });
@ -509,18 +410,21 @@ defineExpose({ init });
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.cntinfo { .cntinfo {
height: calc(100% - 70px); height: calc(100% - 70px);
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
color: #000; color: #000;
} }
.bblxItem { .bblxItem {
width: 100%; width: 100%;
line-height: 40px; line-height: 40px;
min-height: 40px; min-height: 40px;
display: flex; display: flex;
color: #000; color: #000;
.btItem { .btItem {
width: 180px; width: 180px;
padding: 7px 0; padding: 7px 0;
@ -528,17 +432,20 @@ defineExpose({ init });
margin-top: 1px; margin-top: 1px;
text-align: center; text-align: center;
} }
.info { .info {
flex: 1; flex: 1;
background: #0000000a; background: #0000000a;
margin-top: 1px; margin-top: 1px;
padding: 10px; padding: 10px;
box-sizing: border-box; box-sizing: border-box;
.gapline { .gapline {
height: 1px; height: 1px;
border-top: 1px dashed #66cbff; border-top: 1px dashed #66cbff;
margin: 4px 0; margin: 4px 0;
} }
.dl-car { .dl-car {
min-width: 200px; min-width: 200px;
display: inline-block; display: inline-block;
@ -547,6 +454,7 @@ defineExpose({ init });
padding: 0; padding: 0;
border-radius: 5px; border-radius: 5px;
position: relative; position: relative;
dt { dt {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
@ -561,12 +469,14 @@ defineExpose({ init });
height: 30px; height: 30px;
border-radius: 5px 5px 0 0; border-radius: 5px 5px 0 0;
} }
.peo { .peo {
border-bottom: solid 1px #01d608; border-bottom: solid 1px #01d608;
background: #dbf3cf; background: #dbf3cf;
color: #339d00; color: #339d00;
} }
} }
.dl-car::before { .dl-car::before {
position: absolute; position: absolute;
content: ""; content: "";
@ -577,6 +487,7 @@ defineExpose({ init });
background: url("~@/assets/images/peo.png"); background: url("~@/assets/images/peo.png");
} }
} }
.num { .num {
width: 50px; width: 50px;
height: 30px; height: 30px;
@ -587,6 +498,7 @@ defineExpose({ init });
border-radius: 4px; border-radius: 4px;
margin-right: 10px; margin-right: 10px;
} }
.subBtn { .subBtn {
padding-left: 100px; padding-left: 100px;
box-sizing: border-box; box-sizing: border-box;
@ -596,9 +508,11 @@ defineExpose({ init });
::v-deep .el-form-item--default { ::v-deep .el-form-item--default {
margin-bottom: 0; margin-bottom: 0;
} }
::v-deep .el-form-item { ::v-deep .el-form-item {
margin-bottom: 10px; margin-bottom: 10px;
} }
::v-deep .el-form--inline .el-form-item { ::v-deep .el-form--inline .el-form-item {
margin-right: 20px; margin-right: 20px;
margin-top: 10px; margin-top: 10px;

View File

@ -1,12 +1,12 @@
<template> <template>
<div> <div>
<div class="titleBox"> <div class="titleBox">
<PageTitle title="单位保安信息"> <PageTitle title="勤务报备">
<el-button type="primary" @click="addEdit('add', '')"> <el-button type="primary" @click="addEdit('add', '')">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -15,15 +15,9 @@
</div> </div>
<!-- 表格 --> <!-- 表格 -->
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #bbZt="{ row }"> <template #bbZt="{ row }">
<dict-tag :options="D_QW_BBZT" :value="row.bbZt" :tag="false" /> <dict-tag :options="D_QW_BBZT" :value="row.bbZt" :tag="false" />
</template> </template>
@ -32,22 +26,14 @@
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link> <el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" @getjczgetXfllList="getjczgetXfllList"
ref="detailDiloag" :dic="{ D_BZ_RYMFJLB, D_BZ_JYQXFL, D_BZ_JLLX, D_BZ_JYQXFL, D_QW_BC_KTS }" />
@getjczgetXfllList="getjczgetXfllList"
:dic="{ D_BZ_RYMFJLB, D_BZ_JYQXFL, D_BZ_JLLX, D_BZ_JYQXFL, D_QW_BC_KTS }"
/>
</div> </div>
</template> </template>
@ -143,7 +129,8 @@ const changeSize = (val) => {
// 获取列表 // 获取列表
const getjczgetXfllList = () => { const getjczgetXfllList = () => {
pageData.tableConfiger.loading = true; pageData.tableConfiger.loading = true;
XfbbselectPage({ pageSize: 10, pageCurrent: 1 }).then((res) => { let params = { ...queryFrom.value, pageSize: 10, pageCurrent: 1 }
XfbbselectPage(params).then((res) => {
pageData.tableData = res.records || []; pageData.tableData = res.records || [];
pageData.total = res.total; pageData.total = res.total;
pageData.tableConfiger.loading = false; pageData.tableConfiger.loading = false;
@ -161,7 +148,7 @@ const delDictItem = (ids) => {
getjczgetXfllList(); getjczgetXfllList();
}); });
}) })
.catch(() => {}); .catch(() => { });
}; };
getjczgetXfllList(); getjczgetXfllList();
// 新增 // 新增

View File

@ -3,10 +3,10 @@
<div class="titleBox"> <div class="titleBox">
<PageTitle title="智能装备管理"> <PageTitle title="智能装备管理">
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth"> <el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -15,15 +15,9 @@
<Search :searchArr="searchConfiger" @submit="onSearch" /> <Search :searchArr="searchConfiger" @submit="onSearch" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #sblx="{ row }"> <template #sblx="{ row }">
<dict-tag :options="zbAllList" :value="row.sblx" :tag="false" /> <dict-tag :options="zbAllList" :value="row.sblx" :tag="false" />
</template> </template>
@ -38,32 +32,25 @@
<!-- <el-link type="primary" @click="down(row)">附件下载</el-link> --> <!-- <el-link type="primary" @click="down(row)">附件下载</el-link> -->
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" :dict="{ D_BZ_ZBLX_LZ, D_BZ_SF, D_ZDY_SBZT, D_JCGL_TCSB_WLLX }"
ref="detailDiloag" @getjczgetXfllList="getjczgetXfllList" />
:dict="{ D_BZ_ZBLX_LZ, D_BZ_SF, D_ZDY_SBZT, D_JCGL_TCSB_WLLX }"
@getjczgetXfllList="getjczgetXfllList"
/>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ElMessage } from "element-plus";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import EditAddForm from "./components/editAddForm.vue"; import EditAddForm from "./components/editAddForm.vue";
import {isAuth }from '@/utils/tools.js' import { isAuth } from '@/utils/tools.js'
import { TcsbselectList, TcsbtbJczTcsb } from "@/api/mosty-jcz.js"; import { TcsbselectList, TcsbtbJczTcsb } from "@/api/mosty-jcz.js";
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue"; import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
@ -126,9 +113,9 @@ const pageData = reactive({
{ label: "设备编号", prop: "sbbh" } { label: "设备编号", prop: "sbbh" }
] ]
}); });
const Auth=ref(true) const Auth = ref(true)
onMounted(() => { onMounted(() => {
Auth.value=isAuth() Auth.value = isAuth()
tabHeightFn(); tabHeightFn();
}); });

View File

@ -3,10 +3,10 @@
<div class="titleBox"> <div class="titleBox">
<PageTitle title="感知源管理"> <PageTitle title="感知源管理">
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth"> <el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -15,15 +15,9 @@
<Search :searchArr="searchConfiger" @submit="onSearch" /> <Search :searchArr="searchConfiger" @submit="onSearch" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #sblx="{ row }"> <template #sblx="{ row }">
<dict-tag :value="row.sblx" :options="D_BZ_SBLX" :tag="false" /> <dict-tag :value="row.sblx" :options="D_BZ_SBLX" :tag="false" />
</template> </template>
@ -46,33 +40,26 @@
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link> <el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" :dict="{ D_BZ_SF, D_BZ_SBLX, D_BZ_DWFL, D_BZ_GZSBLX }"
ref="detailDiloag" @getjczgetXfllList="getjczgetXfllList" />
:dict="{ D_BZ_SF, D_BZ_SBLX, D_BZ_DWFL, D_BZ_GZSBLX }"
@getjczgetXfllList="getjczgetXfllList"
/>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ElMessage } from "element-plus";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import EditAddForm from "./components/editAddForm.vue"; import EditAddForm from "./components/editAddForm.vue";
import { TtbgetPageList, jczdeleteList } from "@/api/mosty-jcz.js"; import { TtbgetPageList, gzydeleteList } from "@/api/mosty-jcz.js";
import {isAuth} from '@/utils/tools.js' import { isAuth } from '@/utils/tools.js'
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const urlImg = "/mosty-api/mosty-base/minio/image/download/"; const urlImg = "/mosty-api/mosty-base/minio/image/download/";
@ -138,9 +125,9 @@ const pageData = reactive({
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true } { label: "所属部门", prop: "ssbm", showOverflowTooltip: true }
] ]
}); });
const Auth=ref(true) const Auth = ref(true)
onMounted(() => { onMounted(() => {
Auth.value=isAuth() Auth.value = isAuth()
tabHeightFn(); tabHeightFn();
}); });
@ -179,8 +166,8 @@ const delDictItem = (ids) => {
proxy proxy
.$confirm("确定删除该数据?", "警告", { type: "warning" }) .$confirm("确定删除该数据?", "警告", { type: "warning" })
.then(() => { .then(() => {
jczdeleteList(ids).then((res) => { gzydeleteList(ids).then((res) => {
ElMessage({ message: "删除成功", type: "success" }); // ElMessage({ message: "删除成功", type: "success" });
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getjczgetXfllList(); getjczgetXfllList();
}); });

View File

@ -3,47 +3,26 @@
<div class="head_box"> <div class="head_box">
<span class="title">{{ pageInfo[pageType].title }}</span> <span class="title">{{ pageInfo[pageType].title }}</span>
<div> <div>
<el-button <el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
size="small"
type="primary"
v-if="['add', 'edit'].includes(pageType)"
@click="_onSave"
>保存</el-button
>
<el-button size="small" @click="close">关闭</el-button> <el-button size="small" @click="close">关闭</el-button>
</div> </div>
</div> </div>
<div class="cntinfo"> <div class="cntinfo">
<el-form <el-form ref="formRef" :model="listQuery" :inline="true" label-position="top" :rules="rules">
ref="formRef" <div style="
:model="listQuery"
:inline="true"
label-position="top"
:rules="rules"
>
<div
style="
width: 25%; width: 25%;
display: flex; display: flex;
justify-content: center; justify-content: center;
margin-bottom: 10px; margin-bottom: 10px;
" ">
>
<div style="position: relative; width: 90px; height: 100px"> <div style="position: relative; width: 90px; height: 100px">
<el-upload :disabled="forbidden" <el-upload :disabled="forbidden" action="/mosty-api/mosty-base/minio/image/upload/id" :on-success="upImg"
action="/mosty-api/mosty-base/minio/image/upload/id" :show-file-list="false">
:on-change="upImgFile"
:on-success="upImg"
:show-file-list="false"
>
<el-image v-if="imgUrl" :src="imgUrl" fit="cover" /> <el-image v-if="imgUrl" :src="imgUrl" fit="cover" />
<el-icon v-else> <el-icon v-else>
<Plus></Plus> <Plus></Plus>
</el-icon> </el-icon>
<span <span v-if="imgUrl" style="position: absolute; top: -52px; right: -20px">
v-if="imgUrl"
style="position: absolute; top: -52px; right: -20px"
>
<el-icon size="20" @click.stop="deletImg"> <el-icon size="20" @click.stop="deletImg">
<Close /> <Close />
</el-icon> </el-icon>
@ -52,101 +31,55 @@
</div> </div>
</div> </div>
<el-form-item style="width: 20%" prop="ssbmdm" label="所属部门"> <el-form-item style="width: 20%" prop="ssbmdm" label="所属部门">
<MOSTY.Department :disabled="forbidden" <MOSTY.Department :disabled="forbidden" width="100%" clearable v-model="listQuery.ssbmdm"
width="100%" :placeholder="listQuery.ssbm ? listQuery.ssbm : '请选择所属部门'" />
clearable
v-model="listQuery.ssbmdm"
:placeholder="listQuery.ssbm ? listQuery.ssbm : '请选择所属部门'"
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkmc" label="布控名称"> <el-form-item style="width: 40%" prop="bkmc" label="布控名称">
<el-input :disabled="forbidden" <el-input :disabled="forbidden" v-model="listQuery.bkmc" placeholder="请输入布控名称" style="width: 100%"
v-model="listQuery.bkmc" clearable />
placeholder="请输入布控名称"
style="width: 100%"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bksfzh" label="身份证号"> <el-form-item style="width: 40%" prop="bksfzh" label="身份证号">
<el-input :disabled="forbidden" <el-input :disabled="forbidden" v-model="listQuery.bksfzh" placeholder="请输入布控人身份证号" style="width: 100%"
v-model="listQuery.bksfzh" clearable />
placeholder="请输入布控人身份证号"
style="width: 100%"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bklb" label="布控类别"> <el-form-item style="width: 40%" prop="bklb" label="布控类别">
<el-select :disabled="forbidden" v-model="listQuery.bklb" placeholder="请选择布控类别"> <el-select :disabled="forbidden" v-model="listQuery.bklb" placeholder="请选择布控类别">
<el-option <el-option v-for="dict in dict.D_BZ_RYBKLX" :key="dict.value" :value="dict.value"
v-for="dict in dict.D_BZ_RYBKLX" :label="dict.label"></el-option>
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkkssj" label="开始时间"> <el-form-item style="width: 40%" prop="bkkssj" label="开始时间">
<el-date-picker :disabled="forbidden" <el-date-picker :disabled="forbidden" v-model="listQuery.bkkssj" type="datetime" placeholder="请选中开始时间"
v-model="listQuery.bkkssj" format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
type="datetime"
placeholder="请选中开始时间"
format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss"
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkjssj" label="结束时间"> <el-form-item style="width: 40%" prop="bkjssj" label="结束时间">
<el-date-picker :disabled="forbidden" <el-date-picker :disabled="forbidden" v-model="listQuery.bkjssj" type="datetime" placeholder="请选中结束时间"
v-model="listQuery.bkjssj" format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
type="datetime"
placeholder="请选中结束时间"
format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss"
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkqy" label="布控区域"> <el-form-item style="width: 40%" prop="bkqy" label="布控区域">
<el-input :disabled="forbidden" <el-input :disabled="forbidden" v-model="listQuery.bkqy" placeholder="请输入布控区域" style="width: 100%"
v-model="listQuery.bkqy" clearable />
placeholder="请输入布控区域"
style="width: 100%"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkzt" label="布控状态"> <el-form-item style="width: 40%" prop="bkzt" label="布控状态">
<el-select :disabled="forbidden" v-model="listQuery.bkzt" placeholder="请选择布控状态"> <el-select :disabled="forbidden" v-model="listQuery.bkzt" placeholder="请选择布控状态">
<el-option <el-option v-for="dict in dict.D_BZ_RCBKZT" :key="dict.value" :value="dict.value"
v-for="dict in dict.D_BZ_RCBKZT" :label="dict.label"></el-option>
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkfw" label="布控范围"> <el-form-item style="width: 40%" prop="bkfw" label="布控范围">
<el-select :disabled="forbidden" v-model="listQuery.bkfw" placeholder="请选择布控状态"> <el-select :disabled="forbidden" v-model="listQuery.bkfw" placeholder="请选择布控状态">
<el-option <el-option v-for="dict in dict.D_BZ_RCBKFW" :key="dict.value" :value="dict.value"
v-for="dict in dict.D_BZ_RCBKFW" :label="dict.label"></el-option>
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkczlx" label="布控操作类型"> <el-form-item style="width: 40%" prop="bkczlx" label="布控操作类型">
<el-input :disabled="forbidden" <el-input :disabled="forbidden" v-model="listQuery.bkczlx" placeholder="请输入布控区域" style="width: 100%"
v-model="listQuery.bkczlx" clearable />
placeholder="请输入布控区域"
style="width: 100%"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkdxtzm" label="布控对象特征码"> <el-form-item style="width: 40%" prop="bkdxtzm" label="布控对象特征码">
<el-input :disabled="forbidden" <el-input :disabled="forbidden" v-model="listQuery.bkdxtzm" placeholder="请输入布控区域" style="width: 100%"
v-model="listQuery.bkdxtzm" clearable />
placeholder="请输入布控区域"
style="width: 100%"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item style="width: 40%" prop="bkkk" label="布控卡口"> <el-form-item style="width: 40%" prop="bkkk" label="布控卡口">
<div class="diviput" @click="openJcz"> <div class="diviput" @click="openJcz">
@ -171,7 +104,7 @@ import { ElMessage } from "element-plus";
const props = defineProps({ const props = defineProps({
dict: { dict: {
type: Object, type: Object,
default: () => {} default: () => { }
} }
}); });
const rules = reactive({ const rules = reactive({
@ -258,7 +191,7 @@ const pageInfo = {
let pageType = ref("add"); let pageType = ref("add");
// 初始化数据 // 初始化数据
const forbidden=ref(false) const forbidden = ref(false)
const init = (type, row) => { const init = (type, row) => {
pageType.value = type; pageType.value = type;
dialogForm.value = true; dialogForm.value = true;
@ -267,7 +200,7 @@ const init = (type, row) => {
if (type == "edit" || type == "detail") { if (type == "edit" || type == "detail") {
listQuery.value = { ...row }; listQuery.value = { ...row };
if (type == "detail") { if (type == "detail") {
forbidden.value=true forbidden.value = true
} }
} else { } else {
listQuery.value = {}; listQuery.value = {};
@ -303,14 +236,15 @@ const imgUrl = ref();
const urlImg = "/mosty-api/mosty-base/minio/image/download/"; const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const upImg = (row) => { const upImg = (row) => {
listQuery.value.bkzp = row.data; listQuery.value.bkzp = row.data;
imgUrl.value = urlImg.value + row.data; imgUrl.value = urlImg + row.data;
}; };
//打开弹窗 //打开弹窗
const showJcz = ref(false); const showJcz = ref(false);
const openJcz = () => { const openJcz = () => {
if (!forbidden) { if (!forbidden) {
showJcz.value=true showJcz.value = true
} }
}; };
const JczMsg = (val) => { const JczMsg = (val) => {
@ -320,7 +254,7 @@ const JczMsg = (val) => {
//页面关闭 //页面关闭
const close = () => { const close = () => {
dialogForm.value = false; dialogForm.value = false;
forbidden.value=false forbidden.value = false
listQuery.value = {}; listQuery.value = {};
}; };
// 表格高度计算 // 表格高度计算
@ -335,21 +269,25 @@ defineExpose({ init });
<style lang="scss" scoped> <style lang="scss" scoped>
.dialog { .dialog {
padding: 20px; padding: 20px;
.head_box { .head_box {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.cntinfo { .cntinfo {
height: calc(100% - 70px); height: calc(100% - 70px);
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
} }
} }
.my_transfer { .my_transfer {
height: calc(100% - 50px); height: calc(100% - 50px);
display: flex; display: flex;
.btn { .btn {
width: 50px; width: 50px;
display: flex; display: flex;
@ -357,58 +295,71 @@ defineExpose({ init });
justify-content: center; justify-content: center;
margin: 0 10px; margin: 0 10px;
} }
.left { .left {
margin: 12px; margin: 12px;
flex: 1; flex: 1;
position: relative; position: relative;
.tableBox { .tableBox {
position: absolute; position: absolute;
width: 100%; width: 100%;
} }
.serch { .serch {
position: relative; position: relative;
width: 100%; width: 100%;
// height: 96px; // height: 96px;
> .el-form--inline { >.el-form--inline {
display: block; display: block;
width: 100%; width: 100%;
padding: 0; padding: 0;
> .el-form-item--default {
>.el-form-item--default {
width: 31%; width: 31%;
} }
} }
} }
.tableBox { .tableBox {
width: 100%; width: 100%;
} }
} }
.right { .right {
width: 380px; width: 380px;
margin: 12px; margin: 12px;
} }
} }
.phone { .phone {
width: 95px; width: 95px;
height: 120px; height: 120px;
.el-image { .el-image {
width: 95px; width: 95px;
max-height: 120px; max-height: 120px;
} }
} }
::v-deep .el-upload { ::v-deep .el-upload {
width: 90px; width: 90px;
height: 100px; height: 100px;
border: 1px dashed #000000; border: 1px dashed #000000;
margin-bottom: 14px; margin-bottom: 14px;
.el-icon { .el-icon {
margin-top: 34px; margin-top: 34px;
font-size: 26px; font-size: 26px;
} }
.el-image { .el-image {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.mapbox { .mapbox {
width: 1000px; width: 1000px;
padding: 0 10px; padding: 0 10px;
@ -416,6 +367,7 @@ defineExpose({ init });
box-sizing: border-box; box-sizing: border-box;
background: #000; background: #000;
} }
.diviput { .diviput {
width: 100%; width: 100%;
background-color: #ffffff; background-color: #ffffff;
@ -425,10 +377,12 @@ defineExpose({ init });
line-height: 32px; line-height: 32px;
padding: 0 10px; padding: 0 10px;
border-radius: 5px; border-radius: 5px;
.placeholder { .placeholder {
color: #b5b5b5; color: #b5b5b5;
} }
} }
::v-deep .el-icon svg { ::v-deep .el-icon svg {
color: #000000 !important; color: #000000 !important;
} }

View File

@ -3,47 +3,26 @@
<div class="head_box"> <div class="head_box">
<span class="title">{{ pageInfo[pageType].title }}</span> <span class="title">{{ pageInfo[pageType].title }}</span>
<div> <div>
<el-button <el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
size="small"
type="primary"
v-if="['add', 'edit'].includes(pageType)"
@click="_onSave"
>保存</el-button
>
<el-button size="small" @click="close">关闭</el-button> <el-button size="small" @click="close">关闭</el-button>
</div> </div>
</div> </div>
<div class="cntinfo"> <div class="cntinfo">
<el-form <el-form ref="formRef" :model="listQuery" :rules="rules" :inline="true" label-position="top">
ref="formRef" <div style="
:model="listQuery"
:rules="rules"
:inline="true"
label-position="top"
>
<div
style="
width: 25%; width: 25%;
display: flex; display: flex;
justify-content: center; justify-content: center;
margin-bottom: 10px; margin-bottom: 10px;
" ">
>
<div style="position: relative; width: 90px; height: 100px"> <div style="position: relative; width: 90px; height: 100px">
<el-upload <el-upload action="/mosty-api/mosty-base/minio/image/upload/id" :on-change="upImgFile" :on-success="upImg"
action="/mosty-api/mosty-base/minio/image/upload/id" :show-file-list="false">
:on-change="upImgFile"
:on-success="upImg"
:show-file-list="false"
>
<el-image v-if="imgUrl" :src="imgUrl" fit="cover" /> <el-image v-if="imgUrl" :src="imgUrl" fit="cover" />
<el-icon v-else> <el-icon v-else>
<Plus></Plus> <Plus></Plus>
</el-icon> </el-icon>
<span <span v-if="imgUrl" style="position: absolute; top: -52px; right: -20px">
v-if="imgUrl"
style="position: absolute; top: -52px; right: -20px"
>
<el-icon size="20" @click.stop="deletImg"> <el-icon size="20" @click.stop="deletImg">
<Close /> <Close />
</el-icon> </el-icon>
@ -52,160 +31,72 @@
</div> </div>
</div> </div>
<el-form-item label="身份证号码" prop="sfzh"> <el-form-item label="身份证号码" prop="sfzh">
<el-input <el-input v-model="listQuery.sfzh" placeholder="请输入身份证号码" clearable style="width: 100%" />
v-model="listQuery.sfzh"
placeholder="请输入身份证号码"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="辅警姓名" prop="xm"> <el-form-item label="辅警姓名" prop="xm">
<el-input <el-input v-model="listQuery.xm" placeholder="请输入辅警姓名" clearable style="width: 100%" />
v-model="listQuery.xm"
placeholder="请输入辅警姓名"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="性别" prop="xbdm"> <el-form-item label="性别" prop="xbdm">
<el-select <el-select clearable v-model="listQuery.xbdm" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_BZ_XB" :key="index" :label="item.label"
v-model="listQuery.xbdm" :value="item.value"></el-option>
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_BZ_XB"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="民族" prop="mzdm"> <el-form-item label="民族" prop="mzdm">
<el-select <el-select clearable v-model="listQuery.mzdm" placeholder="请选择民族" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_BZ_MZ" :key="index" :label="item.label"
v-model="listQuery.mzdm" :value="item.value"></el-option>
placeholder="请选择民族"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_BZ_MZ"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="政治面貌" prop="zzmm"> <el-form-item label="政治面貌" prop="zzmm">
<el-select <el-select clearable v-model="listQuery.zzmm" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_BZ_ZZMM" :key="index" :label="item.label"
v-model="listQuery.zzmm" :value="item.value"></el-option>
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_BZ_ZZMM"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="婚姻状况" prop="hyzk"> <el-form-item label="婚姻状况" prop="hyzk">
<el-select <el-select clearable v-model="listQuery.hyzk" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_BZ_HYZK" :key="index" :label="item.label"
v-model="listQuery.hyzk" :value="item.value"></el-option>
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_BZ_HYZK"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="学历" prop="whcddm"> <el-form-item label="学历" prop="whcddm">
<el-select <el-select clearable v-model="listQuery.whcddm" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_BZ_WHCD" :key="index" :label="item.label"
v-model="listQuery.whcddm" :value="item.value"></el-option>
placeholder="请选择" </el-select>
style="width: 100%" </el-form-item>
> <el-form-item label="是否在职" prop="ztzt">
<el-option <el-select clearable v-model="listQuery.ztzt" placeholder="请选择" style="width: 100%">
v-for="(item, index) in dict.D_BZ_WHCD" <el-option v-for="(item, index) in dict.D_BZ_SF" :key="index" :label="item.label"
:key="index" :value="item.value"></el-option>
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="辅警编号" prop="jh"> <el-form-item label="辅警编号" prop="jh">
<el-input <el-input v-model="listQuery.jh" placeholder="请输入辅警编号" clearable style="width: 100%" />
v-model="listQuery.jh"
placeholder="请输入辅警编号"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="联系电话" prop="lxdh"> <el-form-item label="联系电话" prop="lxdh">
<el-input <el-input v-model="listQuery.lxdh" placeholder="请输入联系电话" clearable style="width: 100%" />
v-model="listQuery.lxdh"
placeholder="请输入联系电话"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item prop="rzsj" label="入职时间"> <el-form-item prop="rzsj" label="入职时间">
<el-date-picker <el-date-picker style="width: 100%" v-model="listQuery.rzsj" type="date" placeholder="请选择入职时间"
style="width: 100%" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
v-model="listQuery.rzsj"
type="date"
placeholder="请选择入职时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item> </el-form-item>
<el-form-item label="警衔" prop="jx"> <el-form-item label="警衔" prop="jx">
<el-select <el-select clearable v-model="listQuery.jx" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_BZ_FJJX" :key="index" :label="item.label"
v-model="listQuery.jx" :value="item.value"></el-option>
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_BZ_FJJX"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="考核情况" prop="khqk"> <el-form-item label="考核情况" prop="khqk">
<el-select <el-select clearable v-model="listQuery.khqk" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_BZ_SF" :key="index" :label="item.label"
v-model="listQuery.khqk" :value="item.value"></el-option>
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_BZ_SF"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- :rules="{ required: true, message: '请选择部门' }" --> <!-- :rules="{ required: true, message: '请选择部门' }" -->
<el-form-item label="所属部门" prop="ssbmdm"> <el-form-item label="所属部门" prop="ssbmdm">
<MOSTY.Department <MOSTY.Department :placeholder="listQuery.ssbm" width="100%" clearable v-model="listQuery.ssbmdm" />
:placeholder="listQuery.ssbm"
width="100%"
clearable
v-model="listQuery.ssbmdm"
/>
</el-form-item> </el-form-item>
<!-- <el-form-item label="人员类别" prop="lx"> <!-- <el-form-item label="人员类别" prop="lx">
<el-select clearable v-model="listQuery.lx" placeholder="请选择" style="width: 100%" disabled> <el-select clearable v-model="listQuery.lx" placeholder="请选择" style="width: 100%" disabled>
@ -234,12 +125,7 @@
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="备注" style="width: 100%"> <el-form-item label="备注" style="width: 100%">
<el-input <el-input v-model="listQuery.bz" placeholder="请输入关键字" show-word-limit type="textarea" />
v-model="listQuery.bz"
placeholder="请输入关键字"
show-word-limit
type="textarea"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -256,7 +142,7 @@ import { ElMessage } from "element-plus";
const props = defineProps({ const props = defineProps({
dict: { dict: {
type: Object, type: Object,
default: () => {} default: () => { }
} }
}); });
const rules = reactive({ const rules = reactive({
@ -396,21 +282,25 @@ defineExpose({ init });
<style lang="scss" scoped> <style lang="scss" scoped>
.dialog { .dialog {
padding: 20px; padding: 20px;
.head_box { .head_box {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.cntinfo { .cntinfo {
height: calc(100% - 70px); height: calc(100% - 70px);
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
} }
} }
.my_transfer { .my_transfer {
height: calc(100% - 50px); height: calc(100% - 50px);
display: flex; display: flex;
.btn { .btn {
width: 50px; width: 50px;
display: flex; display: flex;
@ -418,44 +308,54 @@ defineExpose({ init });
justify-content: center; justify-content: center;
margin: 0 10px; margin: 0 10px;
} }
.left { .left {
margin: 12px; margin: 12px;
flex: 1; flex: 1;
position: relative; position: relative;
.tableBox { .tableBox {
position: absolute; position: absolute;
width: 100%; width: 100%;
} }
.serch { .serch {
position: relative; position: relative;
width: 100%; width: 100%;
// height: 96px; // height: 96px;
> .el-form--inline { >.el-form--inline {
display: block; display: block;
width: 100%; width: 100%;
padding: 0; padding: 0;
> .el-form-item--default {
>.el-form-item--default {
width: 31%; width: 31%;
} }
} }
} }
.tableBox { .tableBox {
width: 100%; width: 100%;
} }
} }
.right { .right {
width: 380px; width: 380px;
margin: 12px; margin: 12px;
} }
} }
.phone { .phone {
width: 95px; width: 95px;
height: 120px; height: 120px;
.el-image { .el-image {
width: 95px; width: 95px;
max-height: 120px; max-height: 120px;
} }
} }
::v-deep .el-upload { ::v-deep .el-upload {
width: 90px; width: 90px;
height: 100px; height: 100px;

View File

@ -3,10 +3,10 @@
<div class="titleBox"> <div class="titleBox">
<PageTitle title="巡防辅警"> <PageTitle title="巡防辅警">
<el-button type="primary" @click="addEdit('add', '')"> <el-button type="primary" @click="addEdit('add', '')">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -15,21 +15,18 @@
<Search :searchArr="searchConfiger" @submit="onSearch" /> <Search :searchArr="searchConfiger" @submit="onSearch" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #tp="{ row }"> <template #tp="{ row }">
<div class="phone"> <div class="phone">
<el-image v-if="row.tp" :src="urlImg + row.tp" fit="cover" lazy /> <el-image v-if="row.tp" :src="urlImg + row.tp" fit="cover" lazy />
<el-image v-else :src="Person" fit="cover" lazy /> <el-image v-else :src="Person" fit="cover" lazy />
</div> </div>
</template> </template>
<template #ztzt="{ row }">
<dict-tag :options="D_BZ_SF" :value="row.ztzt" :tag="false" />
</template>
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
@ -38,22 +35,14 @@
<!-- <el-link type="primary" @click="down(row)">附件下载</el-link> --> <!-- <el-link type="primary" @click="down(row)">附件下载</el-link> -->
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" :dict="{ D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM,D_BZ_HYZK,D_BZ_WHCD }"
ref="detailDiloag" @getjczgetXfllList="getjczgetXfllList" />
:dict="{ D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM }"
@getjczgetXfllList="getjczgetXfllList"
/>
</div> </div>
</template> </template>
@ -67,11 +56,13 @@ import { jczgetXfllList, jczdeleteList } from "@/api/mosty-jcz.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const urlImg = "/mosty-api/mosty-base/minio/image/download/"; const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const { D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM } = proxy.$dict( const { D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM,D_BZ_HYZK,D_BZ_WHCD } = proxy.$dict(
"D_BZ_SF", "D_BZ_SF",
"D_BZ_MZ", "D_BZ_MZ",
"D_BZ_XB", "D_BZ_XB",
"D_BZ_ZZMM" "D_BZ_ZZMM",
"D_BZ_HYZK",
"D_BZ_WHCD"
); );
const searchConfiger = ref([ const searchConfiger = ref([
{ {
@ -88,7 +79,7 @@ const searchConfiger = ref([
}, },
{ {
label: "是否离职", label: "是否离职",
prop: "xtSjzt", prop: "ztzt",
placeholder: "是否离职", placeholder: "是否离职",
showType: "select", showType: "select",
options: D_BZ_SF options: D_BZ_SF
@ -121,7 +112,8 @@ const pageData = reactive({
{ label: "民警姓名", prop: "xm" }, { label: "民警姓名", prop: "xm" },
{ label: "身份证号码", prop: "sfzh" }, { label: "身份证号码", prop: "sfzh" },
{ label: "警号", prop: "jh" }, { label: "警号", prop: "jh" },
{ label: "专业技能", prop: "zyjn" } { label: "专业技能", prop: "zyjn" },
{ label: "是否在职", prop: "ztzt", showSolt: true },
] ]
}); });
onMounted(() => { onMounted(() => {

View File

@ -4,10 +4,10 @@
<PageTitle title="环林卡口管理"> <PageTitle title="环林卡口管理">
{{ Auth }} {{ Auth }}
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth"> <el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -16,15 +16,9 @@
<Search :searchArr="searchConfiger" @submit="onSearch" /> <Search :searchArr="searchConfiger" @submit="onSearch" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #jczlx="{ row }"> <template #jczlx="{ row }">
<dict-tag :value="row.jczlx" :options="D_BZ_JCZLX" :tag="false" /> <dict-tag :value="row.jczlx" :options="D_BZ_JCZLX" :tag="false" />
</template> </template>
@ -44,33 +38,26 @@
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link> <el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" :dict="{ D_BZ_JCZLX, D_BZ_ZQLX, D_BZ_DLLX, D_BZ_JCZJB }"
ref="detailDiloag" @getjczgetXfllList="getjczgetXfllList" />
:dict="{ D_BZ_JCZLX, D_BZ_ZQLX, D_BZ_DLLX, D_BZ_JCZJB }"
@getjczgetXfllList="getjczgetXfllList"
/>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ElMessage } from "element-plus";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import EditAddForm from "./components/editAddForm.vue"; import EditAddForm from "./components/editAddForm.vue";
import { JczselectJczList, JczdeleteById } from "@/api/mosty-jcz.js"; import { JczselectJczList, JczdeleteById } from "@/api/mosty-jcz.js";
import {isAuth} from '@/utils/tools.js' import { isAuth } from '@/utils/tools.js'
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_BZ_JCZLX, D_BZ_ZQLX, D_BZ_DLLX, D_BZ_JCZJB } = proxy.$dict( const { D_BZ_JCZLX, D_BZ_ZQLX, D_BZ_DLLX, D_BZ_JCZJB } = proxy.$dict(
@ -147,7 +134,7 @@ const pageData = reactive({
} }
] ]
}); });
const Auth=ref(true) const Auth = ref(true)
onMounted(() => { onMounted(() => {
Auth.value = isAuth() Auth.value = isAuth()
@ -189,7 +176,7 @@ const delDictItem = (ids) => {
proxy proxy
.$confirm("确定删除该数据?", "警告", { type: "warning" }) .$confirm("确定删除该数据?", "警告", { type: "warning" })
.then(() => { .then(() => {
JczdeleteById({ id: [ids] }).then((res) => { JczdeleteById(ids).then((res) => {
ElMessage({ message: "删除成功", type: "success" }); ElMessage({ message: "删除成功", type: "success" });
pageData.pageConfiger.pageCurrent = 1; pageData.pageConfiger.pageCurrent = 1;
getjczgetXfllList(); getjczgetXfllList();

View File

@ -3,142 +3,63 @@
<div class="head_box"> <div class="head_box">
<span class="title">{{ pageInfo[pageType].title }}</span> <span class="title">{{ pageInfo[pageType].title }}</span>
<div> <div>
<el-button <el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
size="small"
type="primary"
v-if="['add', 'edit'].includes(pageType)"
@click="_onSave"
>保存</el-button
>
<el-button size="small" @click="close">关闭</el-button> <el-button size="small" @click="close">关闭</el-button>
</div> </div>
</div> </div>
<div class="cntinfo"> <div class="cntinfo">
<el-form <el-form ref="formRef" :model="listQuery" :rules="rules" :inline="true" label-position="top">
ref="formRef"
:model="listQuery"
:rules="rules"
:inline="true"
label-position="top"
>
<el-form-item prop="ssbmdm" label="所属部门"> <el-form-item prop="ssbmdm" label="所属部门">
<MOSTY.Department <MOSTY.Department :placeholder="listQuery.ssbm" style="width: 100%" ref="cascader" clearable filterable
:placeholder="listQuery.ssbm" :props="props" v-model:modelValue="listQuery.ssbmdm" />
style="width: 100%"
ref="cascader"
clearable
filterable
:props="props"
v-model:modelValue="listQuery.ssbmdm"
/>
</el-form-item> </el-form-item>
<el-form-item label="设备编号" prop="qxbh"> <el-form-item label="设备编号" prop="qxbh">
<el-input <el-input v-model="listQuery.qxbh" placeholder="请输入设备编号" clearable style="width: 100%" />
v-model="listQuery.qxbh"
placeholder="请输入设备编号"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="装备类型" prop="qxlx"> <el-form-item label="装备类型" prop="qxlx">
<el-select v-model="listQuery.qxlx" placeholder="请选择性别"> <el-select v-model="listQuery.qxlx" placeholder="请选择性别">
<el-option <el-option v-for="item in dict.D_JCGL_JYQX_QXLX" :key="item" :label="item.zdmc"
v-for="item in dict.D_JCGL_JYQX_QXLX" :value="item.dm"></el-option>
:key="item"
:label="item.zdmc"
:value="item.dm"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="设备分类" prop="scode"> <!-- <el-form-item label="设备分类" prop="scode">
<el-select v-model="listQuery.scode" placeholder="请选择设备分类"> <el-select v-model="listQuery.scode" placeholder="请选择设备分类">
<el-option <el-option v-for="item in dict.D_BZ_JYQXFL" :key="item" :label="item.label" :value="item.dm"></el-option>
v-for="item in dict.D_BZ_JYQXFL"
:key="item"
:label="item.label"
:value="item.dm"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item prop="qxMc" label="装备名称"> <el-form-item prop="qxMc" label="装备名称">
<el-input <el-input v-model="listQuery.qxMc" placeholder="请输入装备名称" clearable style="width: 100%" />
v-model="listQuery.qxMc"
placeholder="请输入装备名称"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="装备型号"> <el-form-item label="装备型号">
<el-input <el-input v-model="listQuery.xh" placeholder="请输入装备型号" clearable style="width: 100%" />
v-model="listQuery.xh"
placeholder="请输入装备型号"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="数量" prop="sl"> <el-form-item label="数量" prop="sl">
<el-input-number v-model="listQuery.sl" :step="1" :min="0" /> <el-input-number v-model="listQuery.sl" :step="1" :min="0" />
</el-form-item> </el-form-item>
<el-form-item label="计量单位" prop="jsdw"> <el-form-item label="计量单位" prop="jsdw">
<el-input <el-input v-model="listQuery.jsdw" placeholder="请输入单位" clearable style="width: 100%" />
v-model="listQuery.jsdw"
placeholder="请输入单位"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="装备状态"> <el-form-item label="装备状态">
<el-select <el-select clearable v-model="listQuery.zbzt" placeholder="请选择" style="width: 100%">
clearable <el-option v-for="(item, index) in dict.D_ZDY_SBZT" :key="index" :label="item.label"
v-model="listQuery.zbzt" :value="item.value"></el-option>
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_ZDY_SBZT"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="装备厂商"> <el-form-item label="装备厂商">
<el-input <el-input v-model="listQuery.sccs" placeholder="请输入装备厂商" clearable style="width: 100%" />
v-model="listQuery.sccs"
placeholder="请输入装备厂商"
clearable
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item prop="cgrq" label="购置日期"> <el-form-item prop="cgrq" label="购置日期">
<el-date-picker <el-date-picker style="width: 100%" format="YYYY/MM/DD" value-format="YYYY-MM-DD" v-model="listQuery.cgrq"
style="width: 100%" type="date" placeholder="请选择日期" />
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
v-model="listQuery.cgrq"
type="date"
placeholder="请选择日期"
/>
</el-form-item> </el-form-item>
<el-form-item prop="dqsj" label="到期日期"> <el-form-item prop="dqsj" label="到期日期">
<el-date-picker <el-date-picker format="YYYY/MM/DD" value-format="YYYY-MM-DD" v-model="listQuery.dqsj" type="date"
format="YYYY/MM/DD" placeholder="请选择日期" style="width: 100%" />
value-format="YYYY-MM-DD"
v-model="listQuery.dqsj"
type="date"
placeholder="请选择日期"
style="width: 100%"
/>
</el-form-item> </el-form-item>
<el-form-item label="备注" style="width: 100%"> <el-form-item label="备注" style="width: 100%">
<el-input <el-input v-model="listQuery.bz" placeholder="请输入关键字" show-word-limit type="textarea" />
v-model="listQuery.bz"
placeholder="请输入关键字"
show-word-limit
type="textarea"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -153,7 +74,7 @@ import { ElMessage } from "element-plus";
const props = defineProps({ const props = defineProps({
dict: { dict: {
type: Object, type: Object,
default: () => {} default: () => { }
} }
}); });
const rules = reactive({ const rules = reactive({
@ -295,21 +216,25 @@ defineExpose({ init });
<style lang="scss" scoped> <style lang="scss" scoped>
.dialog { .dialog {
padding: 20px; padding: 20px;
.head_box { .head_box {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.cntinfo { .cntinfo {
height: calc(100% - 70px); height: calc(100% - 70px);
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
} }
} }
.my_transfer { .my_transfer {
height: calc(100% - 50px); height: calc(100% - 50px);
display: flex; display: flex;
.btn { .btn {
width: 50px; width: 50px;
display: flex; display: flex;
@ -317,59 +242,72 @@ defineExpose({ init });
justify-content: center; justify-content: center;
margin: 0 10px; margin: 0 10px;
} }
.left { .left {
margin: 12px; margin: 12px;
flex: 1; flex: 1;
position: relative; position: relative;
.tableBox { .tableBox {
position: absolute; position: absolute;
width: 100%; width: 100%;
} }
.serch { .serch {
position: relative; position: relative;
width: 100%; width: 100%;
// height: 96px; // height: 96px;
> .el-form--inline { >.el-form--inline {
display: block; display: block;
width: 100%; width: 100%;
padding: 0; padding: 0;
> .el-form-item--default {
>.el-form-item--default {
width: 31%; width: 31%;
} }
} }
} }
.tableBox { .tableBox {
width: 100%; width: 100%;
} }
} }
.right { .right {
width: 380px; width: 380px;
margin: 12px; margin: 12px;
} }
} }
.phone { .phone {
width: 95px; width: 95px;
height: 120px; height: 120px;
.el-image { .el-image {
width: 95px; width: 95px;
max-height: 120px; max-height: 120px;
} }
} }
::v-deep .el-upload { ::v-deep .el-upload {
width: 90px; width: 90px;
height: 100px; height: 100px;
border: 1px dashed #e0e0e0; border: 1px dashed #e0e0e0;
margin-bottom: 14px; margin-bottom: 14px;
.el-icon { .el-icon {
margin-top: 34px; margin-top: 34px;
font-size: 26px; font-size: 26px;
} }
.el-image { .el-image {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
::v-deep .el-form-item{
::v-deep .el-form-item {
width: 45%; width: 45%;
} }
</style> </style>

View File

@ -3,10 +3,10 @@
<div class="titleBox"> <div class="titleBox">
<PageTitle title="警用器械管理"> <PageTitle title="警用器械管理">
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth"> <el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -15,15 +15,9 @@
<Search :searchArr="searchConfiger" @submit="onSearch" /> <Search :searchArr="searchConfiger" @submit="onSearch" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #zbzt="{ row }"> <template #zbzt="{ row }">
<dict-tag :options="D_ZDY_SBZT" :value="row.zbzt" :tag="false" /> <dict-tag :options="D_ZDY_SBZT" :value="row.zbzt" :tag="false" />
</template> </template>
@ -40,28 +34,19 @@
<!-- <el-link type="primary" @click="down(row)">附件下载</el-link> --> <!-- <el-link type="primary" @click="down(row)">附件下载</el-link> -->
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" :dict="{
ref="detailDiloag"
:dict="{
D_BZ_ZBLX_LZ, D_BZ_ZBLX_LZ,
D_BZ_SF, D_BZ_SF,
D_JCGL_TCSB_WLLX, D_JCGL_TCSB_WLLX,
D_JCGL_JYQX_QXLX, D_JCGL_JYQX_QXLX,
D_ZDY_SBZT,D_BZ_JYQXFL D_ZDY_SBZT, D_BZ_JYQXFL
}" }" @getjczgetXfllList="getjczgetXfllList" />
@getjczgetXfllList="getjczgetXfllList"
/>
</div> </div>
</template> </template>
@ -69,7 +54,7 @@
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
import {isAuth }from '@/utils/tools.js' import { isAuth } from '@/utils/tools.js'
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import EditAddForm from "./components/editAddForm.vue"; import EditAddForm from "./components/editAddForm.vue";
import { tbJczSelectJyqx, tbJczXfbbdeleteJyQxzb } from "@/api/mosty-jcz.js"; import { tbJczSelectJyqx, tbJczXfbbdeleteJyQxzb } from "@/api/mosty-jcz.js";
@ -82,13 +67,13 @@ const {
D_BZ_SF, D_BZ_SF,
D_ZDY_SBZT, D_ZDY_SBZT,
D_JCGL_TCSB_WLLX, D_JCGL_TCSB_WLLX,
D_BZ_ZBLX_LZ,D_BZ_JYQXFL D_BZ_ZBLX_LZ, D_BZ_JYQXFL
} = proxy.$dict( } = proxy.$dict(
"D_JCGL_JYQX_QXLX", "D_JCGL_JYQX_QXLX",
"D_BZ_SF", "D_BZ_SF",
"D_ZDY_SBZT", "D_ZDY_SBZT",
"D_JCGL_TCSB_WLLX", "D_JCGL_TCSB_WLLX",
"D_BZ_ZBLX_LZ","D_BZ_JYQXFL" "D_BZ_ZBLX_LZ", "D_BZ_JYQXFL"
); );
const searchConfiger = ref([ const searchConfiger = ref([
{ {
@ -139,9 +124,9 @@ const pageData = reactive({
{ label: "生产厂商", prop: "sccs" } { label: "生产厂商", prop: "sccs" }
] ]
}); });
const Auth=ref(true) const Auth = ref(true)
onMounted(() => { onMounted(() => {
Auth.value=isAuth() Auth.value = isAuth()
tabHeightFn(); tabHeightFn();
}); });
@ -179,7 +164,7 @@ const delDictItem = (ids) => {
proxy proxy
.$confirm("确定删除该数据?", "警告", { type: "warning" }) .$confirm("确定删除该数据?", "警告", { type: "warning" })
.then(() => { .then(() => {
tbJczXfbbdeleteJyQxzb({ids:[ids]}).then((res) => { tbJczXfbbdeleteJyQxzb({ ids: [ids] }).then((res) => {
ElMessage({ message: "删除成功", type: "success" }); ElMessage({ message: "删除成功", type: "success" });
pageData.pageConfiger.pageNo = 1; pageData.pageConfiger.pageNo = 1;
getjczgetXfllList(); getjczgetXfllList();

View File

@ -3,117 +3,54 @@
<div class="head_box"> <div class="head_box">
<span class="title">{{ pageInfo[pageType].title }}</span> <span class="title">{{ pageInfo[pageType].title }}</span>
<div> <div>
<el-button <el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
size="small"
type="primary"
v-if="['add', 'edit'].includes(pageType)"
@click="_onSave"
>保存</el-button
>
<el-button size="small" @click="close">关闭</el-button> <el-button size="small" @click="close">关闭</el-button>
</div> </div>
</div> </div>
<div class="cntinfo"> <div class="cntinfo">
<div class="my_transfer"> <div class="my_transfer">
<div class="tree"> <div class="tree">
<MOSTY.DepartmentTree <MOSTY.DepartmentTree width="300px" placeholder="管理部门ID" clearable filterable :isBmId="true"
width="300px" v-model="listQuery.deptId" />
placeholder="管理部门ID"
clearable
filterable
:isBmId="true"
v-model="listQuery.deptId"
/>
</div> </div>
<div class="left"> <div class="left">
<div class="serch"> <div class="serch">
<el-form :model="searchConfiger" ref="formRef" :inline="true"> <el-form :model="searchConfiger" ref="formRef" :inline="true">
<el-form-item label="用户名"> <el-form-item label="用户名">
<el-input <el-input placeholder="请输入用户名" v-model="searchConfiger.loginName" clearable></el-input>
placeholder="请输入用户名"
v-model="searchConfiger.loginName"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="电话号码"> <el-form-item label="电话号码">
<el-input <el-input placeholder="请输入电话" v-model="searchConfiger.phone" clearable></el-input>
placeholder="请输入电话"
v-model="searchConfiger.phone"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="身份证号码"> <el-form-item label="身份证号码">
<el-input <el-input v-model="searchConfiger.idEntityCard" placeholder="请输入身份证号码" clearable />
v-model="searchConfiger.idEntityCard"
placeholder="请输入身份证号码"
clearable
/>
</el-form-item> </el-form-item>
<el-form-item label="是否包含下级"> <el-form-item label="是否包含下级">
<el-select v-model="searchConfiger.isChild"> <el-select v-model="searchConfiger.isChild">
<el-option <el-option v-for="item in D_BZ_SF" :key="item" :label="item.label" :value="item.value">{{ item.label
v-for="item in D_BZ_SF" }}</el-option>
:key="item"
:label="item.label"
:value="item.value"
>{{ item.label }}</el-option
>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="success" @click="getBaseselectPage" <el-button type="success" @click="getBaseselectPage">查询</el-button>
>查询</el-button
>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div <div class="tableBox" :style="{ height: tableHeight1 + 'px' }" style="border: 1px solid #07376d">
class="tableBox" <el-table :data="tableLeftData" border row-key="id" height="100%" style="width: 100%"
:style="{ height: tableHeight1 + 'px' }" @selection-change="handleSelectionChangeLeft">
style="border: 1px solid #07376d"
>
<el-table
:data="tableLeftData"
border
row-key="id"
height="100%"
style="width: 100%"
@selection-change="handleSelectionChangeLeft"
>
<el-table-column type="selection" width="40" align="center" /> <el-table-column type="selection" width="40" align="center" />
<el-table-column <el-table-column prop="deptName" label="所属部门" align="center" />
prop="deptName" <el-table-column prop="userName" label="用户姓名" align="center" />
label="所属部门" <el-table-column prop="idEntityCard" label="身份证号" align="center" />
align="center"
/>
<el-table-column
prop="userName"
label="用户姓名"
align="center"
/>
<el-table-column
prop="idEntityCard"
label="身份证号"
align="center"
/>
<el-table-column prop="mobile" label="电话号码" align="center" /> <el-table-column prop="mobile" label="电话号码" align="center" />
<el-table-column <el-table-column prop="inDustRialId" label="警号" align="center" />
prop="inDustRialId"
label="警号"
align="center"
/>
</el-table> </el-table>
<div> <div>
<el-pagination <el-pagination class="pagination" @size-change="handleSizeChangeUser"
class="pagination" @current-change="handleCurrentChangeUser" :current-page="linQuery.pageCurrent"
@size-change="handleSizeChangeUser" :page-sizes="[10, 20, 50, 100]" :page-size="linQuery.pageSize"
@current-change="handleCurrentChangeUser" layout="total, sizes, prev, pager, next, jumper" :total="totalUser">
:current-page="linQuery.pageCurrent"
:page-sizes="[10, 20, 50, 100]"
:page-size="linQuery.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="totalUser"
>
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
@ -123,30 +60,12 @@
<el-button :icon="Right" circle @click="upRight" /> <el-button :icon="Right" circle @click="upRight" />
</div> </div>
<div class="right" style="height: 700px; border: 1px solid #07376d"> <div class="right" style="height: 700px; border: 1px solid #07376d">
<el-table <el-table :data="tableRightData" ref="multipleTableRef" border row-key="id" height="100%"
:data="tableRightData" @selection-change="handleSelectionChangeRight">
ref="multipleTableRef"
border
row-key="id"
height="100%"
@selection-change="handleSelectionChangeRight"
>
<el-table-column type="selection" width="40" align="center" /> <el-table-column type="selection" width="40" align="center" />
<el-table-column <el-table-column prop="deptName" label="所属部门" align="center"></el-table-column>
prop="deptName" <el-table-column prop="userName" label="用户姓名" align="center"></el-table-column>
label="所属部门" <el-table-column prop="inDustRialId" label="警号" align="center"></el-table-column>
align="center"
></el-table-column>
<el-table-column
prop="userName"
label="用户姓名"
align="center"
></el-table-column>
<el-table-column
prop="inDustRialId"
label="警号"
align="center"
></el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
@ -311,21 +230,25 @@ defineExpose({ init });
<style lang="scss" scoped> <style lang="scss" scoped>
.dialog { .dialog {
padding: 20px; padding: 20px;
.head_box { .head_box {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.cntinfo { .cntinfo {
height: calc(100% - 70px); height: calc(100% - 70px);
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
} }
} }
.my_transfer { .my_transfer {
height: calc(100% - 50px); height: calc(100% - 50px);
display: flex; display: flex;
.btn { .btn {
width: 50px; width: 50px;
display: flex; display: flex;
@ -333,53 +256,65 @@ defineExpose({ init });
justify-content: center; justify-content: center;
margin: 0 10px; margin: 0 10px;
} }
.left { .left {
margin: 12px; margin: 12px;
flex: 1; flex: 1;
position: relative; position: relative;
.tableBox { .tableBox {
position: absolute; position: absolute;
width: 100%; width: 100%;
} }
.serch { .serch {
position: relative; position: relative;
width: 100%; width: 100%;
// height: 96px; // height: 96px;
> .el-form--inline { >.el-form--inline {
display: block; display: block;
width: 100%; width: 100%;
padding: 0; padding: 0;
> .el-form-item--default {
>.el-form-item--default {
width: 31%; width: 31%;
} }
} }
} }
.tableBox { .tableBox {
width: 100%; width: 100%;
} }
} }
.right { .right {
width: 380px; width: 380px;
margin: 12px; margin: 12px;
} }
} }
.phone { .phone {
width: 95px; width: 95px;
height: 120px; height: 120px;
.el-image { .el-image {
width: 95px; width: 95px;
max-height: 120px; max-height: 120px;
} }
} }
::v-deep .el-upload { ::v-deep .el-upload {
width: 90px; width: 90px;
height: 100px; height: 100px;
border: 1px dashed #000000; border: 1px dashed #000000;
margin-bottom: 14px; margin-bottom: 14px;
.el-icon { .el-icon {
margin-top: 34px; margin-top: 34px;
font-size: 26px; font-size: 26px;
} }
.el-image { .el-image {
width: 100%; width: 100%;
height: 100%; height: 100%;

View File

@ -3,10 +3,10 @@
<div class="titleBox"> <div class="titleBox">
<PageTitle title="巡防民警"> <PageTitle title="巡防民警">
<el-button type="primary" @click="addEdit('add', '')"> <el-button type="primary" @click="addEdit('add', '')">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -15,15 +15,9 @@
<Search :searchArr="searchConfiger" @submit="onSearch" /> <Search :searchArr="searchConfiger" @submit="onSearch" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #tp="{ row }"> <template #tp="{ row }">
<div class="phone"> <div class="phone">
<el-image v-if="row.tp" :src="urlImg + row.tp" fit="cover" lazy /> <el-image v-if="row.tp" :src="urlImg + row.tp" fit="cover" lazy />
@ -33,31 +27,115 @@
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link type="primary" @click="addEdit('edit', row)">修改</el-link> <el-link type="primary" @click="addEdit('edit', row)">修改</el-link>
<el-link type="primary" @click="addEdit('detail', row)" <el-link type="primary" @click="delDictItem(row)">删除</el-link>
>人员档案</el-link
>
<!-- <el-link type="primary" @click="down(row)">附件下载</el-link> --> <!-- <el-link type="primary" @click="down(row)">附件下载</el-link> -->
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages> </div>
<div v-if="dialogFormVisible" class="dialog">
<div class="head_box">
<span class="title">修改</span>
<div>
<el-button type="primary" size="small" @click="submit" :loading="loading">保存</el-button>
<el-button size="small" @click="dialogFormVisible = false">关闭</el-button>
</div>
</div>
<el-form ref="elform" :model="addForm" :rules="rules" :inline="true" label-position="top">
<div style="
width: 16%;
display: flex;
margin-bottom: 10px;
">
<div style="position: relative; height: 100px">
<el-upload class="avatar-uploader" action="/mosty-api/mosty-base/minio/image/upload/id" :on-success="upImg"
:show-file-list="false">
<el-image v-if="imgUrl" :src="imgUrl" fit="cover" />
<el-icon v-else class="avatar-uploader-icon">
<Plus />
</el-icon>
<span v-if="imgUrl" style="position: absolute; right: -20px">
<el-icon color="#0072ff" size="20" @click.stop="deletImg">
<Close />
</el-icon>
</span>
</el-upload>
</div>
</div>
<el-form-item label="民警姓名" prop="xm">
<el-input v-model="addForm.xm" placeholder="请输入民警姓名" clearable style="width: 100%" />
</el-form-item>
<el-form-item label="身份证号码" prop="sfzh">
<el-input v-model="addForm.sfzh" placeholder="请输入身份证号码" clearable style="width: 100%" />
</el-form-item>
<el-form-item label="性别" prop="xbdm">
<el-select clearable v-model="addForm.xbdm" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, index) in D_BZ_XB" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="民族" prop="mzdm">
<el-select clearable v-model="addForm.mzdm" placeholder="请选择民族" style="width: 100%">
<el-option v-for="(item, index) in D_BZ_MZ" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="政治面貌" prop="zzmm">
<el-select clearable v-model="addForm.zzmm" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, index) in D_BZ_ZZMM" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="婚姻状况" prop="hyzk">
<el-select clearable v-model="addForm.hyzk" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, index) in D_BZ_HYZK" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="学历" prop="whcddm">
<el-select clearable v-model="addForm.whcddm" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, index) in D_BZ_WHCD" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="民警编号" prop="jh">
<el-input v-model="addForm.jh" placeholder="请输入民警编号" clearable style="width: 100%" />
</el-form-item>
<el-form-item label="联系电话" prop="lxdh">
<el-input v-model="addForm.lxdh" placeholder="请输入联系电话" clearable style="width: 100%" />
</el-form-item>
<el-form-item label="所属部门" prop="ssbmid">
<MOSTY.Department :placeholder="addForm.ssbm" style="width: 100%" ref="cascader" clearable filterable
:options="depList" :props="props" @change="handleChange" v-model="addForm.ssbmid" />
</el-form-item>
<el-form-item label="人员类别" prop="lx">
<el-select clearable v-model="addForm.lx" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, index) in D_BZ_RYLB" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 100%" label="专业技能" prop="sklList" @change="selectJnbq">
<el-select v-model="addForm.sklList" multiple placeholder="请选择" style="width: 100%" @change="onChangeBQ">
<el-option v-for="item in bqList" :key="item.id" :label="item.bqmc" :value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="备注" style="width: 100%">
<el-input v-model="addForm.bz" placeholder="请输入关键字" show-word-limit type="textarea" />
</el-form-item>
</el-form>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" :dict="{ D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM }" />
ref="detailDiloag"
:dict="{ D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM }"
/>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ElMessage } from "element-plus";
import * as MOSTY from "@/components/MyComponents/index";
import { qcckGet, qcckPost, qcckPut, qcckDelete } from "@/api/qcckApi.js";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
@ -66,12 +144,17 @@ import EditAddForm from "./components/editAddForm.vue";
import { jczgetXfllList } from "@/api/mosty-jcz.js"; import { jczgetXfllList } from "@/api/mosty-jcz.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM } = proxy.$dict( const { D_BZ_SF, D_BZ_MZ, D_BZ_XB, D_BZ_ZZMM, D_BZ_WHCD, D_BZ_HYZK } = proxy.$dict(
"D_BZ_SF", "D_BZ_SF",
"D_BZ_MZ", "D_BZ_MZ",
"D_BZ_XB", "D_BZ_XB",
"D_BZ_ZZMM" "D_BZ_ZZMM",
"D_BZ_WHCD",
"D_BZ_HYZK"
); );
const urlImg = ref("/mosty-api/mosty-base/minio/image/download/");
const imgUrl = ref("");
const dialogFormVisible = ref(false);
const searchConfiger = ref([ const searchConfiger = ref([
{ {
label: "姓名", label: "姓名",
@ -99,7 +182,7 @@ const searchConfiger = ref([
label: "所属部门" label: "所属部门"
} }
]); ]);
const elform = ref(null)
const detailDiloag = ref(); const detailDiloag = ref();
const pageData = reactive({ const pageData = reactive({
tableData: [], //表格数据 tableData: [], //表格数据
@ -123,6 +206,7 @@ const pageData = reactive({
{ label: "专业技能", prop: "zyjn" } { label: "专业技能", prop: "zyjn" }
] ]
}); });
const addForm = ref({})
onMounted(() => { onMounted(() => {
tabHeightFn(); tabHeightFn();
}); });
@ -150,22 +234,67 @@ const onSearch = (val) => {
queryCondition.value = { ...queryCondition.value, ...val }; queryCondition.value = { ...queryCondition.value, ...val };
getjczgetXfllList(); getjczgetXfllList();
}; };
function submit() {
elform.value.validate((valid) => {
if (valid) {
let data = addForm.value;
qcckPut(data, '/mosty-jcz/tbQwXfll').then(res => {
dialogFormVisible.value = false
})
}
});
}
function upImg(row) {
addForm.value.tp = row.data;
imgUrl.value = urlImg.value + row.data;
}
function deletImg() {
imgUrl.value = "";
addForm.value.tp = "";
}
const changeNo = (val) => { const changeNo = (val) => {
pageData.pageConfiger.pageNum = val; pageData.pageConfiger.pageNum = val;
getjczgetXfllList()
}; };
const changeSize = (val) => { const changeSize = (val) => {
pageData.pageConfiger.pageSize = val; pageData.pageConfiger.pageSize = val;
getjczgetXfllList()
}; };
// 获取列表
// 删除
const delDictItem = (ids) => {};
// 新增 // 新增
const addEdit = (type, row) => { const addEdit = (type, row) => {
if (type == 'edit') {
getMjDetail(row.id)
} else {
detailDiloag.value.init(type, row); detailDiloag.value.init(type, row);
}
}; };
//删除人员
function delDictItem(e) {
proxy
.$confirm("确定要删除", "警告", {
type: "warning"
})
.then(() => {
qcckDelete({}, `/mosty-jcz/tbQwXfll/delXfll/${e.id}`).then((res) => {
ElMessage({
message: "删除成功",
type: "success"
});
getjczgetXfllList();
});
})
.catch(() => {
proxy.$message.info("已取消");
});
}
const getMjDetail = (id) => {
qcckGet({}, `/mosty-jcz/tbQwXfll/${id}`).then(res => {
addForm.value = res;
imgUrl.value = res.tp ? urlImg.value + res.tp : "";
dialogFormVisible.value = true
})
}
const searchBox = ref(null); const searchBox = ref(null);
// 表格高度计算 // 表格高度计算
const tabHeightFn = () => { const tabHeightFn = () => {
@ -177,8 +306,29 @@ const tabHeightFn = () => {
}; };
</script> </script>
<style> <style lang="scss" scoped>
.el-loading-mask { .el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important; background: rgba(0, 0, 0, 0.5) !important;
} }
.avatar-uploader .el-upload {
border: 1px dashed var(--el-border-color);
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
transition: var(--el-transition-duration-fast);
}
.avatar-uploader .el-upload:hover {
border-color: var(--el-color-primary);
}
.el-icon.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 150px;
height: 100px;
text-align: center;
}
</style> </style>

View File

@ -3,10 +3,10 @@
<div class="titleBox"> <div class="titleBox">
<PageTitle title="车辆管理"> <PageTitle title="车辆管理">
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth"> <el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> <el-icon style="vertical-align: middle">
<span style="vertical-align: middle" @click="addEdit('add', row)" <CirclePlus />
>新增</span </el-icon>
> <span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button> </el-button>
</PageTitle> </PageTitle>
</div> </div>
@ -15,15 +15,9 @@
<Search :searchArr="searchConfiger" @submit="onSearch" /> <Search :searchArr="searchConfiger" @submit="onSearch" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
<MyTable <MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:tableData="pageData.tableData" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
:tableColumn="pageData.tableColumn" @chooseData="chooseData">
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #zbzt="{ row }"> <template #zbzt="{ row }">
<dict-tag :value="row.zbzt" :options="D_ZDY_SBZT"></dict-tag> <dict-tag :value="row.zbzt" :options="D_ZDY_SBZT"></dict-tag>
</template> </template>
@ -40,33 +34,25 @@
<!-- <el-link type="primary" @click="down(row)">附件下载</el-link> --> <!-- <el-link type="primary" @click="down(row)">附件下载</el-link> -->
</template> </template>
</MyTable> </MyTable>
<Pages <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger, ...pageData.pageConfiger,
total: pageData.total total: pageData.total
}" }"></Pages>
></Pages>
</div> </div>
<!-- 编辑详情 --> <!-- 编辑详情 -->
<EditAddForm <EditAddForm ref="detailDiloag" :dict="{
ref="detailDiloag"
:dict="{
D_ZDY_SBZT, D_ZDY_SBZT,
D_JCGL_JYCL_HPYSLB, D_JCGL_JYCL_HPYSLB,
D_BZ_HPZL, D_BZ_HPZL,
D_BZ_CLPP, D_BZ_CLPP,
D_BZ_CLLX, D_BZ_CLLX,
D_BZ_CLYS D_BZ_CLYS
}" }" @getjczgetXfllList="getjczgetXfllList" />
@getjczgetXfllList="getjczgetXfllList"
/>
</div> </div>
</template> </template>
<script setup> <script setup>
import { ElMessage } from "element-plus";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue"; import Pages from "@/components/aboutTable/Pages.vue";
@ -125,9 +111,9 @@ const pageData = reactive({
{ label: "状态", prop: "zbzt", showSolt: true } { label: "状态", prop: "zbzt", showSolt: true }
] ]
}); });
const Auth=ref(true) const Auth = ref(true)
onMounted(() => { onMounted(() => {
Auth.value=isAuth() Auth.value = isAuth()
tabHeightFn(); tabHeightFn();
}); });

View File

@ -5,7 +5,7 @@ function resolve(dir) {
} }
// const serverHost = "http://192.192.8.9:8006"; // const serverHost = "http://192.192.8.9:8006";
const serverHost = "http://192.168.1.67:8006" const serverHost = "http://192.168.1.32:8066"
// const serverHost = "http://127.0.0.1:8006" // const serverHost = "http://127.0.0.1:8006"
module.exports = { module.exports = {
publicPath: "./", publicPath: "./",