更新页面

This commit is contained in:
2026-04-17 17:16:51 +08:00
parent a3464a53cb
commit 04cedbc438
20 changed files with 1315 additions and 81 deletions

View File

@ -0,0 +1,55 @@
<template>
<div class="form-item-box zj-packageSelect-wrap" :style="{ width: width }">
<el-select v-bind="$attrs" :model-value="modelValue" @change="hanlderSelect"
:popper-class="selectOption.length > 20 ? 'nation-select' : ''" :placeholder="placeholder">
<el-option v-for="item in selectOption" :key="item.dm" :label="item.zdmc" :value="item.dm">
</el-option>
</el-select>
</div>
</template>
<script setup>
import { COMPONENT_WIDTH } from '@/constant';
import { nextTick, onBeforeMount, ref } from "vue";
import { getDictInfoByDictEnum } from "@/api/sysDict";
const emits = defineEmits(["handleChange"]); //子组件向父组件事件传递
const props = defineProps({
//获取组件传值
placeholder: {
default: "请选择",
type: String
},
modelValue: {
default: "",
type: String
},
dictEnum: {
default: "",
type: String
},
width: {
default: COMPONENT_WIDTH,
type: String
}
});
const selectOption = ref([]);
onBeforeMount(async () => {
const res = await getDictInfoByDictEnum({ dictElementEnum: props.dictEnum });
//正常下拉结构
if (res.zdlx === 1) {
selectOption.value = [...res.itemList];
} else {
//树形结构数据
}
});
const hanlderSelect = (data) => {
emits("handleChange", data);
};
</script>
<style lang="scss" scoped>
.zj-packageSelect-wrap {
::v-deep .el-select {
width: 100%;
}
}
</style>

View File

@ -18,6 +18,7 @@ import MarkdownEdit from "./MarkdownEdit/index.vue";
import FileUpload from "./FileUpload/index.vue"; import FileUpload from "./FileUpload/index.vue";
import Date from "./Date/index.vue"; import Date from "./Date/index.vue";
import Empty from "./Empty/index.vue"; import Empty from "./Empty/index.vue";
import PackageSelect from "./PackageSelect/index.vue";
export { export {
AddressSelect, AddressSelect,
FrameWork, FrameWork,
@ -38,5 +39,6 @@ export {
MarkdownEdit, MarkdownEdit,
FileUpload, FileUpload,
Date, Date,
Empty Empty,
PackageSelect
}; };

View File

@ -26,14 +26,14 @@
<!-- </div> --> <!-- </div> -->
</div> </div>
<div class="container-box" v-else> <div class="container-box" v-else>
<div v-for="(item, index) in userList" :key="item.id"> <div v-for="item in userList" :key="item.id">
<div v-if="checkList.includes(item.nodeId)"> <div v-if="checkList.includes(item.nodeId)">
<el-divider content-position="left">{{ item.nodeName }}</el-divider> <el-divider content-position="left">{{ item.nodeName }}</el-divider>
<template v-if="Array.isArray(item.userList)"> <template v-if="Array.isArray(item.userList)">
<div class="reloBox" v-for="items in item.userList"> <div class="reloBox" v-for="(items,idx) in item.userList" :key="idx">
<div class="orgName">{{ items.name }}</div> <div class="orgName">{{ items.name }}</div>
<el-checkbox-group v-model="items.checkList"> <el-checkbox-group v-model="items.checkList">
<el-checkbox :label="it.userid" v-for="(it, index) in items.users" :key="it.id">{{ <el-checkbox :label="it.userid" v-for="it in items.users" :key="it.id">{{
it.username }}</el-checkbox> it.username }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</div> </div>

View File

@ -21,8 +21,13 @@
</template> </template>
</el-dialog> </el-dialog>
<SelectingPeople v-model="showDialog" :createProcess="createProcess" @close="close" :radioData="radioData" <SelectingPeople
:path="path" @getList="emit('getList')" :userData="userData" /> v-model="showDialog"
:createProcess="createProcess"
@close="close" :radioData="radioData"
:path="path"
@getList="emit('getList')"
:userData="userData" />
</template> </template>
<script setup> <script setup>

View File

@ -329,6 +329,7 @@ export const publicRoutes = [
icon: "article-create" icon: "article-create"
} }
}, },
{ {
path: "/marksControl", path: "/marksControl",
name: "marksControl", name: "marksControl",
@ -338,6 +339,18 @@ export const publicRoutes = [
icon: "article-create" icon: "article-create"
} }
}, },
{
path: "/ReviewListControl",
name: "ReviewListControl",
component: () => import("@/views/backOfficeSystem/IntelligentControl/ReviewListControl/index"),
meta: {
title: "审核列表",
icon: "article-create"
}
},
// { // {
// path: "/DeploymentAudit", // path: "/DeploymentAudit",
// name: "DeploymentAudit", // name: "DeploymentAudit",

View File

@ -92,6 +92,7 @@ export default {
this.commit("user/setUserName", data.userName); this.commit("user/setUserName", data.userName);
setItem('isOatuh', 0) setItem('isOatuh', 0)
setItem('fzUserId', data.fzUserId) setItem('fzUserId', data.fzUserId)
setItem('inDustRialId', data.inDustRialId)
setItem("USERNAME", data.userName); setItem("USERNAME", data.userName);
setItem("roleList", data.sysRole ? data.sysRole : []); setItem("roleList", data.sysRole ? data.sysRole : []);
setItem("SFRH", data.sfrh); setItem("SFRH", data.sfrh);
@ -132,6 +133,7 @@ export default {
this.commit("user/setUserName", data.userName); this.commit("user/setUserName", data.userName);
setItem("USERNAME", data.userName); setItem("USERNAME", data.userName);
setItem('fzUserId', data.fzUserId) setItem('fzUserId', data.fzUserId)
setItem('inDustRialId', data.inDustRialId)
setItem("SFRH", data.sfrh); setItem("SFRH", data.sfrh);
setItem("USERID", data.userId); setItem("USERID", data.userId);
setItem("PermissionsInfo", data.permissionsInfo); setItem("PermissionsInfo", data.permissionsInfo);

View File

@ -0,0 +1,115 @@
<template>
<el-dialog
v-model="visible"
title="审核"
width="500px"
:close-on-click-modal="false"
destroy-on-close
>
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="140px"
>
<el-form-item label="是否通过" prop="sftg">
<el-radio-group v-model="formData.sftg">
<el-radio
v-for="item in D_BZ_SF"
:key="item.value"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
v-if="formData.sftg === '0'"
label="不通过原因"
prop="bkspBtgyy"
>
<el-input
v-model="formData.bkspBtgyy"
type="textarea"
:rows="3"
placeholder="请输入布控审批不通过原因"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-form>
<template #footer>
<div style="text-align: center;">
<el-button @click="handleCancel">取消</el-button>
<el-button type="primary" @click="handleSubmit" :loading="loading">
提交
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { ref, reactive, getCurrentInstance } from "vue";
import { qcckPost } from "@/api/qcckApi.js";
const { proxy } = getCurrentInstance();
const { D_BZ_SF } = proxy.$dict("D_BZ_SF");
const visible = ref(false);
const loading = ref(false);
const formRef = ref();
const currentRow = ref(null);
const formData = reactive({
sftg: "",
bkspBtgyy: ""
});
const formRules = {
sftg: [{ required: true, message: "请选择是否通过", trigger: "change" }],
bkspBtgyy: [
{ required: true, message: "请输入布控审批不通过原因", trigger: "blur" }
]
};
const emit = defineEmits(["success"]);
const open = (row) => {
currentRow.value = row;
formData.sftg = "";
formData.bkspBtgyy = "";
visible.value = true;
};
const handleCancel = () => {
visible.value = false;
};
const handleSubmit = () => {
formRef.value.validate((valid)=>{
if(!valid) return;
loading.value = true;
const params = {
id: currentRow.value.id,
sftg: formData.sftg,
bkspBtgyy: formData.sftg === "0" ? formData.bkspBtgyy : ""
};
qcckPost(params, "/mosty-gsxt/tbGsxtBk/audits").then(() => {
loading.value = false;
proxy.$message({ type: "success", message: "审核成功" });
visible.value = false;
emit("success");
}).catch(()=>{
loading.value = false;
});
});
};
defineExpose({ open });
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,78 @@
<template>
<el-dialog
v-model="visible"
title="布控详情"
width="800px"
:close-on-click-modal="false"
destroy-on-close
>
<el-descriptions :column="2" border v-if="detailData">
<el-descriptions-item label="布控对象" :span="2">
<span v-if="detailData.bkdxList && detailData.bkdxList.length">
<span v-for="(it, idx) in detailData.bkdxList" :key="idx">
{{ it.ryXm || it.imei || it.imsi || '-' }}
<span v-if="idx < detailData.bkdxList.length - 1"></span>
</span>
</span>
<span v-else>暂无</span>
</el-descriptions-item>
<el-descriptions-item label="布控类型">
<DictTag :value="detailData.bkDx" :tag="false" :options="D_GS_BK_NEWDX" />
</el-descriptions-item>
<el-descriptions-item label="布控等级">
<DictTag :value="detailData.bkDj" :tag="false" :options="D_GS_SSYJ" />
</el-descriptions-item>
<el-descriptions-item label="开始时间">
{{ detailData.bkSjKs || '-' }}
</el-descriptions-item>
<el-descriptions-item label="结束时间">
{{ detailData.bkSjJs || '-' }}
</el-descriptions-item>
<el-descriptions-item label="申请人">
{{ detailData.bkfqrXm || '-' }}
</el-descriptions-item>
<el-descriptions-item label="布控状态">
<DictTag :value="detailData.bkZt" :tag="false" :options="D_GS_BK_ZT" />
</el-descriptions-item>
<!-- <el-descriptions-item label="不通过原因">
{{ detailData.bkspBtgyy || '-' }}
</el-descriptions-item> -->
</el-descriptions>
<template #footer>
<el-button @click="visible = false">关闭</el-button>
</template>
</el-dialog>
</template>
<script setup>
import { ref, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const {
D_GS_BK_ZT,
D_GS_SSYJ,
D_GS_BK_NEWDX
} = proxy.$dict(
"D_GS_BK_ZT",
"D_GS_SSYJ",
"D_GS_BK_NEWDX"
);
const visible = ref(false);
const detailData = ref(null);
const open = (row) => {
detailData.value = row;
visible.value = true;
};
defineExpose({ open });
</script>
<style lang="scss" scoped>
:deep(.el-descriptions__label) {
width: 120px;
font-weight: 600;
}
</style>

View File

@ -0,0 +1,116 @@
<template>
<el-dialog
v-model="visible"
title="审核"
width="500px"
:close-on-click-modal="false"
destroy-on-close
>
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="140px"
>
<el-form-item label="是否通过" prop="sftg">
<el-radio-group v-model="formData.sftg">
<el-radio
v-for="item in D_BZ_SF"
:key="item.value"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
v-if="formData.sftg === '0'"
label="不通过原因"
prop="bkspBtgyy"
>
<el-input
v-model="formData.bkspBtgyy"
type="textarea"
:rows="3"
placeholder="请输入审核不通过原因"
maxlength="200"
show-word-limit
/>
</el-form-item>
</el-form>
<template #footer>
<div style="text-align: center;">
<el-button @click="handleCancel">取消</el-button>
<el-button type="primary" @click="handleSubmit" :loading="loading">
提交
</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { ref, reactive, getCurrentInstance } from "vue";
import { qcckPost } from "@/api/qcckApi.js";
const { proxy } = getCurrentInstance();
const { D_BZ_SF } = proxy.$dict("D_BZ_SF");
const visible = ref(false);
const loading = ref(false);
const formRef = ref();
const currentRow = ref(null);
const formData = reactive({
sftg: "",
bkspBtgyy: ""
});
const formRules = {
sftg: [{ required: true, message: "请选择是否通过", trigger: "change" }],
bkspBtgyy: [
{ required: true, message: "请输入审核不通过原因", trigger: "blur" }
]
};
const emit = defineEmits(["success"]);
const open = (row) => {
currentRow.value = row;
formData.sftg = "";
formData.bkspBtgyy = "";
visible.value = true;
};
const handleCancel = () => {
visible.value = false;
};
const handleSubmit = () => {
formRef.value.validate((valid) => {
if (!valid) return;
loading.value = true;
const params = {
id: currentRow.value.id,
sftg: formData.sftg,
bkspBtgyy: formData.sftg === "0" ? formData.bkspBtgyy : ""
};
qcckPost(params, "/mosty-gsxt/gsxt/bqbk/audits")
.then(() => {
loading.value = false;
proxy.$message({ type: "success", message: "审核成功" });
visible.value = false;
emit("success");
})
.catch(() => {
loading.value = false;
});
});
};
defineExpose({ open });
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,55 @@
<template>
<el-dialog
v-model="visible"
title="标签详情"
width="600px"
:close-on-click-modal="false"
destroy-on-close
>
<el-descriptions :column="1" border v-if="detailData">
<el-descriptions-item label="布控标签">
{{ detailData.bqmc || '-' }}
</el-descriptions-item>
<el-descriptions-item label="标签代码">
{{ detailData.bqdm || '-' }}
</el-descriptions-item>
<el-descriptions-item label="标签颜色">
<DictTag :tag="false" :value="detailData.bqys" :options="D_GS_SSYJ" />
</el-descriptions-item>
<el-descriptions-item label="标签描述">
{{ detailData.bqsm || '-' }}
</el-descriptions-item>
<el-descriptions-item label="审核状态">
<DictTag :value="detailData.shzt" :tag="false" :options="D_GS_BK_ZT" />
</el-descriptions-item>
</el-descriptions>
<template #footer>
<div class="tc">
<el-button @click="visible = false">关闭</el-button>
</div>
</template>
</el-dialog>
</template>
<script setup>
import { ref, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const { D_GS_SSYJ,D_GS_BK_ZT } = proxy.$dict("D_GS_SSYJ","D_GS_BK_ZT"); //获取字典数据
const visible = ref(false);
const detailData = ref(null);
const open = (row) => {
detailData.value = row;
visible.value = true;
};
defineExpose({ open });
</script>
<style lang="scss" scoped>
:deep(.el-descriptions__label) {
width: 120px;
font-weight: 600;
}
</style>

View File

@ -0,0 +1,204 @@
<template>
<div>
<!-- 搜索 -->
<div ref="searchBox" class="mt10 mb10">
<QueryFormPanel
v-model="queryFrom"
:fields="searchConfiger"
ref="searchDom"
@search="onSearch"
>
<!-- <template #but>
<el-button type="primary" size="small" @click="exportExl"
>批量导出</el-button
>
</template> -->
</QueryFormPanel>
</div>
<!-- 表格 -->
<div style="background-color: #fff">
<MyTable
:tableConfiger="pageData.tableConfiger"
:tableHeight="pageData.tableHeight"
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:controlsWidth="pageData.controlsWidth"
@chooseData="handleChooseData"
>
<template #bqys="{ row }">
<DictTag :tag="false" :value="row.bqys" :options="D_GS_SSYJ" />
</template>
<template #shzt="{ row }">
<DictTag :value="row.shzt" :tag="false" :options="D_GS_BK_ZT" />
</template>
<template #controls="{ row }">
<el-link type="primary" @click="handleDetail(row)">详情</el-link>
<el-link type="success" @click="handleApprove(row)" v-if="row.shzt === '02'">审核</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
<!-- 详情弹窗 -->
<LabelDetailDialog ref="detailDialogRef" />
<!-- 审核弹窗 -->
<LabelApproveDialog ref="approveDialogRef" @success="getList" />
</div>
</template>
<script setup>
import { getMultiDictVal } from "@/utils/dict.js";
import { exportExlByObj } from "@/utils/exportExcel.js";
import MyTable from "@/components/aboutTable/MyTable.vue";
import QueryFormPanel from "@/views/backOfficeSystem/ces/components/QueryFormPanel.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import LabelDetailDialog from "./LabelDetailDialog.vue";
import LabelApproveDialog from "./LabelApproveDialog.vue";
import { qcckGet } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const { D_GS_SSYJ,D_GS_BK_ZT } = proxy.$dict("D_GS_SSYJ","D_GS_BK_ZT");
const searchBox = ref();
const searchConfiger = ref([
{
key: "bqmc",
label: "标签名称",
type: "input",
placeholder: "请输入标签名称"
},
{
key: "bqys",
label: "标签颜色",
type: "select",
options: D_GS_SSYJ,
placeholder: "请选择标签颜色"
}
]);
const queryFrom = ref({});
const detailDialogRef = ref();
const approveDialogRef = ref();
const pageData = reactive({
tableData: [],
keyCount: 0,
tableConfiger: {
rowHeight: 61,
showSelectType: "checkBox",
loading: false,
haveControls: true,
showIndex: true
},
total: 0,
pageConfiger: {
pageSize: 10,
pageCurrent: 1
},
controlsWidth: 150,
tableColumn: [
{ prop: "bqmc", label: "布控标签"},
{ prop: "bqdm", label: "标签代码" },
{ prop: "bqys", label: "标签颜色", align: "center", showSolt: true },
{ prop: "bqsm", label: "标签描述", align: "center" },
{ prop: "shzt", label: "审核状态", align: "center",showSolt: true }
]
});
onMounted(() => {
tabHeightFn();
getList();
});
// 搜索
const onSearch = (val) => {
queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1;
getList();
};
const changeNo = (val) => {
pageData.pageConfiger.pageCurrent = val;
getList();
};
const changeSize = (val) => {
pageData.pageConfiger.pageSize = val;
getList();
};
const getList = () => {
pageData.tableConfiger.loading = true;
const params = {
...queryFrom.value,
pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize
};
qcckGet(params, "/mosty-gsxt/gsxt/bqbk/getPageWaitList")
.then((res) => {
pageData.total = res?.total || 0;
pageData.tableConfiger.loading = false;
pageData.tableData = res?.records || [];
})
.catch(() => {
pageData.tableConfiger.loading = false;
});
};
// 选中项
const selectRows = ref([]);
const handleChooseData = (val) => {
selectRows.value = val;
};
// 导出
const exportExl = () => {
const titleObj = {
index: "序号",
bqmc: "布控标签",
bqdm: "标签代码",
bqys_name: "标签颜色",
bqsm: "标签描述",
};
const needArr = selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
const data = needArr.map((item, index) => {
return {
index: index + 1,
bqys_name: getMultiDictVal(item.bqys, D_GS_SSYJ),
...item
};
});
exportExlByObj(titleObj, data, "标签待审核列表");
};
// 详情
const handleDetail = (row) => {
detailDialogRef.value.open(row);
};
// 审核
const handleApprove = (row) => {
approveDialogRef.value.open(row);
};
// 表格高度计算
const tabHeightFn = () => {
const searchHeight = searchBox.value?.offsetHeight || 60;
pageData.tableHeight = window.innerHeight - searchHeight - 230;
window.onresize = function () {
tabHeightFn();
};
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,249 @@
<template>
<div>
<!-- 搜索 -->
<div ref="searchBox" class="mt10 mb10">
<QueryFormPanel
v-model="queryFrom"
:searchArr="searchConfiger"
ref="searchDom"
@search="onSearch"
>
<!-- <template #but>
<el-button type="primary" size="small" @click="exportExl"
>批量导出</el-button
>
</template> -->
</QueryFormPanel>
</div>
<!-- 表格 -->
<div style="background-color: #fff">
<MyTable
:tableConfiger="pageData.tableConfiger"
:tableHeight="pageData.tableHeight"
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:controlsWidth="pageData.controlsWidth"
@chooseData="handleChooseData"
:key="pageData.keyCount"
>
<template #bkZt="{ row }">
<DictTag :tag="false" :value="row.bkZt" :options="D_GS_BK_ZT" />
</template>
<template #bkDj="{ row }">
<DictTag :tag="false" :value="row.bkDj" :options="D_GS_SSYJ"/>
</template>
<template #bkDx="{ row }">
<DictTag :tag="false" :value="row.bkDx" :options="D_GS_BK_NEWDX" />
</template>
<template #bkdxList="{ row }">
<span v-if="row.bkdxList"><span class="nowrap" v-for="(it, idx) in row.bkdxList" :key="idx">
{{ it.ryXm ? it.ryXm : it.imei ? it.imei : it.imsi ? it.imsi : '' }}
<span v-if="idx < row.bkdxList.length - 1"></span></span></span>
<span v-else>暂无</span>
</template>
<template #controls="{ row }">
<el-link type="primary" @click="handleDetail(row)">详情</el-link>
<el-link type="success" @click="handleApprove(row)" v-if="row.bkZt == '02'">审核</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
<!-- 详情弹窗 -->
<DetailDialog ref="detailDialogRef" />
<!-- 审核弹窗 -->
<ApproveDialog ref="approveDialogRef" @success="getList" />
</div>
</template>
<script setup>
import { getMultiDictVal } from "@/utils/dict.js";
import { exportExlByObj } from "@/utils/exportExcel.js";
import MyTable from "@/components/aboutTable/MyTable.vue";
import QueryFormPanel from "@/views/backOfficeSystem/ces/components/QueryFormPanel.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import DetailDialog from "./DetailDialog.vue";
import ApproveDialog from "./ApproveDialog.vue";
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const { D_GS_BK_DJ, D_GS_BK_YZ, D_GS_BK_ZT, D_GS_SSYJ, D_GS_BK_NEWDX } = proxy.$dict( "D_GS_BK_DJ", "D_GS_BK_YZ", "D_GS_BK_ZT", "D_GS_SSYJ", "D_GS_BK_NEWDX" );
const searchBox = ref();
const searchConfiger = ref([
{
key: "bkDj",
label: "布控等级",
type: "select",
options: D_GS_SSYJ,
placeholder: "请选择布控等级"
},
{
label: "布控类型",
prop: "bkDx",
placeholder: "请选择布控类型",
showType: "select",
options: D_GS_BK_NEWDX
},
{
label: "布控状态",
prop: "bkZt",
placeholder: "请选择布控状态",
showType: "select",
options: D_GS_BK_ZT
},
{
label: "布控时间",
prop: "startTime",
placeholder: "请选择布控时间",
showType: "datetimerange",
}, {
label: "布控部门",
prop: "bkfqrSsbmdm",
placeholder: "请选择布控部门",
showType: "department",
},
]);
const queryFrom = ref({});
const detailDialogRef = ref();
const approveDialogRef = ref();
const pageData = reactive({
tableData: [],
keyCount: 0,
tableConfiger: {
rowHeight: 61,
showSelectType: "checkBox",
loading: false,
haveControls: true,
showIndex: true
},
total: 0,
pageConfiger: {
pageSize: 10,
pageCurrent: 1
},
controlsWidth: 200,
tableColumn: [
{ label: "布控对象", prop: "bkdxList", showSolt: true, showOverflowTooltip: true },
{ label: "布控类型", prop: "bkDx", showSolt: true, showOverflowTooltip: true },
{ label: "布控等级", prop: "bkDj", showSolt: true },
{ label: "开始时间", prop: "bkSjKs", showOverflowTooltip: true },
{ label: "结束时间", prop: "bkSjJs", showOverflowTooltip: true },
{ label: "申请人", prop: "bkfqrXm" },
{ label: "布控状态", prop: "bkZt", showSolt: true },
]
});
onMounted(() => {
tabHeightFn();
getList();
});
// 搜索
const onSearch = (val) => {
queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1;
getList();
};
const changeNo = (val) => {
pageData.pageConfiger.pageCurrent = val;
getList();
};
const changeSize = (val) => {
pageData.pageConfiger.pageSize = val;
getList();
};
const getList = () => {
pageData.tableConfiger.loading = true;
const params = {
...queryFrom.value,
pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize,
bklx: "01" // 常态布控
};
qcckGet(params, "/mosty-gsxt/tbGsxtBk/selectWaitPage")
.then((res) => {
pageData.total = res?.total || 0;
pageData.tableConfiger.loading = false;
pageData.tableData = res?.records || [];
})
.catch(() => {
pageData.tableConfiger.loading = false;
});
};
// 选中项
const selectRows = ref([]);
const handleChooseData = (val) => {
selectRows.value = val;
};
// 导出
const exportExl = () => {
const titleObj = {
index: "序号",
bkbt: "布控标题",
bkdj_name: "布控等级",
byz_name: "布控要旨",
qyzt_name: "布控状态"
};
const needArr = selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
const data = needArr.map((item, index) => {
return {
index: index + 1,
bkdj_name: getMultiDictVal(item.bkdj, D_GS_BK_DJ),
byz_name: getMultiDictVal(item.byz, D_GS_BK_YZ),
qyzt_name: getMultiDictVal(item.qyzt, D_GS_BK_ZT),
...item
};
});
exportExlByObj(titleObj, data, "常态审核列表");
};
// 详情
const handleDetail = (row) => {
detailDialogRef.value.open(row);
};
// 送审
const handleSubmit = (row) => {
proxy.$confirm("是否确定送审该布控?", "送审确认", { type: "warning" })
.then(() => {
qcckPost({}, `/mosty-gsxt/tbGsxtBk/subExamine/${row.id}`)
.then(() => {
proxy.$message({ type: "success", message: "送审成功" });
getList();
});
});
};
// 审核
const handleApprove = (row) => {
approveDialogRef.value.open(row);
};
// 表格高度计算
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 220;
window.onresize = function () {
tabHeightFn();
};
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,238 @@
<template>
<div>
<!-- 搜索 -->
<div ref="searchBox" class="mt10 mb10">
<QueryFormPanel
v-model="queryFrom"
:fields="searchConfiger"
ref="searchDom"
@search="onSearch"
>
<!-- <template #but>
<el-button type="primary" size="small" @click="exportExl"
>批量导出</el-button
>
</template> -->
</QueryFormPanel>
</div>
<!-- 表格 -->
<div style="background-color: #fff">
<MyTable
:tableConfiger="pageData.tableConfiger"
:tableHeight="pageData.tableHeight"
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:controlsWidth="pageData.controlsWidth"
@chooseData="handleChooseData"
>
<template #bkdj="{ row }">
<DictTag :value="row.bkdj" :tag="false" :options="D_GS_BK_DJ" />
</template>
<template #byz="{ row }">
<DictTag :value="row.byz" :tag="false" :options="D_GS_BK_YZ" />
</template>
<template #qyzt="{ row }">
<DictTag :value="row.qyzt" :tag="false" :options="D_GS_BK_ZT" />
</template>
<template #controls="{ row }">
<el-link type="primary" @click="handleDetail(row)">详情</el-link>
<el-link type="success" @click="handleApprove(row)" v-if="row.bkZt == '02'">审核</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
<!-- 详情弹窗 -->
<DetailDialog ref="detailDialogRef" />
<!-- 审核弹窗 -->
<ApproveDialog ref="approveDialogRef" @success="getList" />
</div>
</template>
<script setup>
import { getMultiDictVal } from "@/utils/dict.js";
import { exportExlByObj } from "@/utils/exportExcel.js";
import MyTable from "@/components/aboutTable/MyTable.vue";
import QueryFormPanel from "@/views/backOfficeSystem/ces/components/QueryFormPanel.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import DetailDialog from "./DetailDialog.vue";
import ApproveDialog from "./ApproveDialog.vue";
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const {
D_GS_BK_DJ,
D_GS_BK_YZ,
D_GS_BK_ZT,
D_BZ_JQDJ
} = proxy.$dict(
"D_GS_BK_DJ",
"D_GS_BK_YZ",
"D_GS_BK_ZT",
'D_BZ_JQDJ'
);
const searchBox = ref();
const searchConfiger = ref([
{
key: "bkDj",
label: "布控等级",
type: "select",
options: D_BZ_JQDJ,
placeholder: "请选择布控等级"
},
{
label: "布控类型",
prop: "bkDx",
placeholder: "请选择布控类型",
showType: "select",
options: D_GS_BK_NEWDX
},
{
label: "布控状态",
prop: "bkZt",
placeholder: "请选择布控状态",
showType: "select",
options: D_GS_BK_ZT
},
{
label: "布控时间",
prop: "startTime",
placeholder: "请选择布控时间",
showType: "datetimerange",
}, {
label: "布控部门",
prop: "bkfqrSsbmdm",
placeholder: "请选择布控部门",
showType: "department",
},
]);
const queryFrom = ref({});
const detailDialogRef = ref();
const approveDialogRef = ref();
const pageData = reactive({
tableData: [],
keyCount: 0,
tableConfiger: {
rowHeight: 61,
showSelectType: "checkBox",
loading: false,
haveControls: true,
showIndex: true
},
total: 0,
pageConfiger: {
pageSize: 10,
pageCurrent: 1
},
controlsWidth: 200,
tableColumn: [
{ prop: "bkbt", label: "布控标题" },
{ prop: "bkdj", label: "布控等级", align: "center", showSolt: true },
{ prop: "byz", label: "布控要旨", align: "center", showSolt: true },
{ prop: "qyzt", label: "布控状态", align: "center", showSolt: true }
]
});
onMounted(() => {
tabHeightFn();
getList();
});
// 搜索
const onSearch = (val) => {
queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1;
getList();
};
const changeNo = (val) => {
pageData.pageConfiger.pageCurrent = val;
getList();
};
const changeSize = (val) => {
pageData.pageConfiger.pageSize = val;
getList();
};
const getList = () => {
pageData.tableConfiger.loading = true;
const params = {
...queryFrom.value,
pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize,
bklx: "02" // 临时布控
};
qcckGet(params, "/mosty-gsxt/tbGsxtBk/selectWaitPage")
.then((res) => {
pageData.total = res?.total || 0;
pageData.tableConfiger.loading = false;
pageData.tableData = res?.records || [];
})
.catch(() => {
pageData.tableConfiger.loading = false;
});
};
// 选中项
const selectRows = ref([]);
const handleChooseData = (val) => {
selectRows.value = val;
};
// 导出
const exportExl = () => {
const titleObj = {
index: "序号",
bkbt: "布控标题",
bkdj_name: "布控等级",
byz_name: "布控要旨",
qyzt_name: "布控状态"
};
const needArr = selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
const data = needArr.map((item, index) => {
return {
index: index + 1,
bkdj_name: getMultiDictVal(item.bkdj, D_GS_BK_DJ),
byz_name: getMultiDictVal(item.byz, D_GS_BK_YZ),
qyzt_name: getMultiDictVal(item.qyzt, D_GS_BK_ZT),
...item
};
});
exportExlByObj(titleObj, data, "临时审核列表");
};
// 详情
const handleDetail = (row) => {
detailDialogRef.value.open(row);
};
// 审核
const handleApprove = (row) => {
approveDialogRef.value.open(row);
};
// 表格高度计算
const tabHeightFn = () => {
const searchHeight = searchBox.value?.offsetHeight || 60;
pageData.tableHeight = window.innerHeight - searchHeight - 230;
window.onresize = function () {
tabHeightFn();
};
};
</script>
<style lang="scss" scoped>
</style>

View File

@ -0,0 +1,37 @@
<template>
<div>
<PageTitle
:malginLeft="10"
:height="35"
backgroundColor="#ffff"
:marginBottom="5"
:marginTop="5"
>
<template #left>
<template v-for="(item, index) in butList" :key="index">
<el-button
:type="qh == item ? 'primary' : 'default'"
@click="qh = item"
size="small"
>{{ item }}</el-button
>
</template>
</template>
</PageTitle>
<NormalReview v-if="qh == '常态审核'" />
<TempReview v-if="qh == '临时审核'" />
<LabelReview v-if="qh == '标签审核'" />
</div>
</template>
<script setup>
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import NormalReview from "./components/NormalReview.vue";
import TempReview from "./components/TempReview.vue";
import LabelReview from "./components/LabelReview.vue";
import { ref, onMounted } from "vue";
const butList = ref(["常态审核", "临时审核", "标签审核"]);
const qh = ref("常态审核");
onMounted(() => {});
</script>

View File

@ -24,9 +24,13 @@
<template #bqys="{ row }"> <template #bqys="{ row }">
<DictTag :tag="false" :value="row.bqys" :options="D_GS_SSYJ" /> <DictTag :tag="false" :value="row.bqys" :options="D_GS_SSYJ" />
</template> </template>
<template #shzt="{ row }">
<DictTag :value="row.shzt" :tag="false" :options="D_GS_BK_ZT" />
</template>
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link type="primary" size="small" @click="createProcess(row)" v-if="row.shzt!= '03'">发起审批</el-link> <!-- <el-link type="primary" size="small" @click="createProcess(row)" v-if="row.shzt!= '03'">发起审批</el-link> -->
<el-link type="primary" size="small" @click="handleSS(row)" v-if="['01', '03', '06'].includes(row.shzt)">送审</el-link>
<el-link type="danger" size="small" @click="handleItem('deleite',row)" v-if="row.shzt == '03'">撤控</el-link> <el-link type="danger" size="small" @click="handleItem('deleite',row)" v-if="row.shzt == '03'">撤控</el-link>
</template> </template>
</MyTable> </MyTable>
@ -56,7 +60,7 @@ import SubmissionProcess from '@/components/flowPath/submissionProcess.vue'
import { qcckGet, qcckPost } from "@/api/qcckApi.js"; import { qcckGet, qcckPost } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const {D_GS_SSYJ} = proxy.$dict("D_GS_SSYJ"); //获取字典数据 const {D_GS_SSYJ,D_GS_BK_ZT} = proxy.$dict("D_GS_SSYJ","D_GS_BK_ZT"); //获取字典数据
const searchBox = ref(); const searchBox = ref();
const addForm = ref() const addForm = ref()
const searchConfiger = ref([ const searchConfiger = ref([
@ -92,8 +96,9 @@ const pageData = reactive({
tableColumn: [ tableColumn: [
{ label: "布控标签", prop: "bqmc" }, { label: "布控标签", prop: "bqmc" },
{ label: "标签代码", prop: "bqdm" }, { label: "标签代码", prop: "bqdm" },
{ label: "标签颜色", prop: "bqys", showSolt: true }, { label: "标签颜色", prop: "bqys", showSolt: true },
{ label: "标签描述", prop: "bqsm" }, { label: "标签描述", prop: "bqsm" },
{ label: "审核状态", prop: "shzt", showSolt: true }
] ]
}); });
onMounted(() => { onMounted(() => {
@ -170,6 +175,25 @@ const createProcess = (row) => {
showSp.value = true; showSp.value = true;
rowData.value = row rowData.value = row
} }
function handleSS (row) {
proxy.$confirm('确认送审吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
qcckGet({}, "/mosty-gsxt/gsxt/bqbk/submitApproval/"+row.id).then((res) => {
proxy.$message({
message: '送审成功',
type: 'success'
});
getList();
}).catch(() => {
pageData.tableConfiger.loading = false;
});
})
}
// 表格高度计算 // 表格高度计算
const tabHeightFn = () => { const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 220; pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 220;

View File

@ -10,8 +10,13 @@
<!-- 按钮组 --> <!-- 按钮组 -->
<!-- 表格 --> <!-- 表格 -->
<div class="margTop"> <div class="margTop">
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight" <MyTable
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"> :tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth">
<template #bkZt="{ row }"> <template #bkZt="{ row }">
<DictTag :tag="false" :value="row.bkZt" :options="D_GS_BK_ZT" /> <DictTag :tag="false" :value="row.bkZt" :options="D_GS_BK_ZT" />
@ -28,7 +33,6 @@
{{ it.ryXm ? it.ryXm : it.imei ? it.imei : it.imsi ? it.imsi : '' }} {{ it.ryXm ? it.ryXm : it.imei ? it.imei : it.imsi ? it.imsi : '' }}
<!-- :it.ryXm?it.mac:it.imsi?it.imsi:'xxxx' --> <!-- :it.ryXm?it.mac:it.imsi?it.imsi:'xxxx' -->
<span v-if="idx < row.bkdxList.length - 1"></span></span></span> <span v-if="idx < row.bkdxList.length - 1"></span></span></span>
<span v-else>暂无</span> <span v-else>暂无</span>
</template> </template>
<!-- <template #sjrs="{ row }"> <!-- <template #sjrs="{ row }">
@ -44,9 +48,15 @@
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<template v-if="!row.gzlid"> <template v-if="!row.gzlid">
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small" <!-- 工作流的送审 -->
@click="createProcess(row)">送审</el-link> <!-- <el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
<el-link type="primary" size="small" @click="tbGsxtBkQuashList(row)" v-else>撤控</el-link> @click="createProcess(row)">送审</el-link> -->
<!-- 不走工作流的送审 -->
<el-link type="primary" size="small" v-if="['01', '03', '06'].includes(row.bkZt)" @click="hadleSendSH(row)">送审</el-link>
<el-link type="primary" size="small" @click="tbGsxtBkQuashList(row)" v-if="!!!(['01', '03', '06'].includes(row.bkZt))">撤控</el-link>
<el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small" <el-link type="primary" v-if="['01', '03', '06'].includes(row.bkZt)" size="small"
@click="handleAdd('edit', row)">编辑</el-link> @click="handleAdd('edit', row)">编辑</el-link>
@ -71,9 +81,20 @@
}" /> }" />
<!-- 预警弹窗 --> <!-- 预警弹窗 -->
<YjDialog ref="warningkdxForm"></YjDialog> <YjDialog ref="warningkdxForm"></YjDialog>
<SubmissionProcess v-model="showSp" :data="rowData" :userData="{ ajmc: '布控审批', flowType: 'BKSP', modelName: '布控' }"
:path="fixedValue" @getList="getList" /> <SubmissionProcess
<Hzd v-model="hzdVisible" :dataList="dataList" :dict="{D_GS_BK_NEWDX,D_BZ_BKLYS,D_GS_SSYJ,D_BZ_JQDJ,D_GZL_SHZT,D_GS_BK_CZYQ}" :name="route.name" /> v-model="showSp"
:data="rowData"
:userData="{ ajmc: '布控审批', flowType: 'BKSP', modelName: '布控' }"
:path="fixedValue"
@getList="getList"
/>
<Hzd
v-model="hzdVisible"
:dataList="dataList"
:dict="{D_GS_BK_NEWDX,D_BZ_BKLYS,D_GS_SSYJ,D_BZ_JQDJ,D_GZL_SHZT,D_GS_BK_CZYQ}"
:name="route.name"
/>
</template> </template>
<script setup> <script setup>
@ -88,15 +109,14 @@ import { tbGsxtBkQuash } from '@/api/zdr.js'
import { useRouter, useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import Hzd from "./components/dolog/hzd.vue"; import Hzd from "./components/dolog/hzd.vue";
import { rotate } from "ol/transform";
const router = useRouter() const router = useRouter()
const route = useRoute() const route = useRoute()
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_SJLX, D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_ZDR_YJDJ, const { D_GS_BK_BKYS, D_BZ_XB, D_GS_BK_SJLX, D_GS_SSYJ, BD_BK_CLYJBQ, D_GS_ZDR_YJDJ,
D_GS_BK_NEWDX, D_GS_BK_ZT, D_GS_BK_CZYQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS, D_BZ_BKLYS,D_GZL_SHZT, D_GS_BK_NEWDX, D_GS_BK_ZT, D_GS_BK_CZYQ, D_GS_BK_CZJSDWLX, D_GS_BK_TJFS, D_BZ_BKLYS,D_GZL_SHZT,
D_BZ_JQDJ } = proxy.$dict("D_GS_ZDR_YJDJ", "D_GS_BK_BKYS", "D_BZ_XB", "D_GS_BK_SJLX", D_BZ_JQDJ, D_BZ_SF } = proxy.$dict("D_GS_ZDR_YJDJ", "D_GS_BK_BKYS", "D_BZ_XB", "D_GS_BK_SJLX",
"D_GS_SSYJ", "D_GS_BK_NEWDX", "D_GS_BK_ZT", "D_GS_BK_CZYQ", "D_GS_BK_CZJSDWLX", "D_GS_BK_TJFS",'D_GZL_SHZT', "D_GS_SSYJ", "D_GS_BK_NEWDX", "D_GS_BK_ZT", "D_GS_BK_CZYQ", "D_GS_BK_CZJSDWLX", "D_GS_BK_TJFS",'D_GZL_SHZT',
'BD_BK_CLYJBQ', 'D_BZ_JQDJ', "D_BZ_BKLYS"); //获取字典数据 'BD_BK_CLYJBQ', 'D_BZ_JQDJ', "D_BZ_BKLYS", "D_BZ_SF"); //获取字典数据
const addBkdxForm = ref(null); //布控对象组件 const addBkdxForm = ref(null); //布控对象组件
const warningkdxForm = ref(); //布控对象组件 const warningkdxForm = ref(); //布控对象组件
const searchBox = ref(); //搜索框 const searchBox = ref(); //搜索框
@ -201,18 +221,11 @@ const changeSize = (val) => {
// 获取列表 // 获取列表
const getList = () => { const getList = () => {
pageData.tableConfiger.loading = true; pageData.tableConfiger.loading = true;
let bklx = ''
if (route.name == 'myControl') {
bklx = '01'
} else {
bklx = '02'
}
let data = { let data = {
...pageData.pageConfiger, ...pageData.pageConfiger,
...queryFrom.value, ...queryFrom.value,
bkcxlx: '01', bkcxlx: '01',
bklx: bklx bklx: route.name == 'myControl' ? '01' : '02'
}; };
qcckGet(data, "/mosty-gsxt/tbGsxtBk/selectPage").then((res) => { qcckGet(data, "/mosty-gsxt/tbGsxtBk/selectPage").then((res) => {
pageData.tableData = res.records || []; pageData.tableData = res.records || [];
@ -223,6 +236,44 @@ const getList = () => {
}); });
}; };
function hadleSendSH (row) {
proxy.$confirm("确定要送审吗?", "提示", { type: "warning" }).then(() => {
qcckGet({}, '/mosty-gsxt/tbGsxtBk/subExamine/'+row.id).then(res => {
proxy.$message({ type: "success", message: "送审成功" });
getList();
}).catch(() => {
proxy.$message({ type: "error", message: "送审失败" });
})
})
}
const shForm = ref({
id: '',
sftg: '',
bkshBtgyy: ''
})
const shFormRef = ref(null)
const shFormRules = {
sftg: [{ required: true, message: '请选择是否通过', trigger: 'change' }],
bkshBtgyy: [{ required: true, message: '请输入布控审核不通过原因', trigger: 'blur' }]
}
// 提交送审
const submitSh = () => {
try {
shFormRef.value.validate(valida=>{
if(!valida) return;
const params = {...shForm.value }
})
} catch (err) {
if (err !== false) {
proxy.$message({ type: "error", message: err.message || '送审失败' });
}
}
}
const handleAdd = (type, row) => { const handleAdd = (type, row) => {
addBkdxForm.value.init(type, row); addBkdxForm.value.init(type, row);
}; };

View File

@ -73,6 +73,8 @@
<!-- 详情 --> <!-- 详情 -->
<DetailForm ref="detailDiloag" @updateDate="getList" /> <DetailForm ref="detailDiloag" @updateDate="getList" />
<RoomDetail /> <RoomDetail />
<ConferenceRoom v-model="conferenceRoomVisible" titleValue="会议详情" /> <ConferenceRoom v-model="conferenceRoomVisible" titleValue="会议详情" />
<!-- 音视频会议窗口 --> <!-- 音视频会议窗口 -->

View File

@ -101,91 +101,73 @@
<el-button size="small" @click="closeDialog">关闭</el-button> <el-button size="small" @click="closeDialog">关闭</el-button>
</div> </div>
</div> </div>
<el-form class="mosty-from-wrap" ref="elform" :model="dialogForm" :inline="true" label-position="top" <el-form class="mosty-from-wrap" ref="elform" :model="dialogForm" :inline="true" label-position="top" :rules="rules">
:rules="rules">
<el-form-item label="部门:" prop="ssbmdm"> <el-form-item label="部门:" prop="ssbmdm">
<MOSTY.Department :placeholder="dialogForm.ssbm" width="280px" clearable filterable <MOSTY.Department :placeholder="dialogForm.ssbm" clearable filterable
v-model="dialogForm.ssbmdm" /> v-model="dialogForm.ssbmdm" />
</el-form-item> </el-form-item>
<el-form-item label="用户昵称:" prop="userName"> <el-form-item label="用户昵称:" prop="userName">
<MOSTY.Other width="280px" placeholder="请输入用户昵称" clearable v-model="dialogForm.userName" /> <MOSTY.Other placeholder="请输入用户昵称" clearable v-model="dialogForm.userName" />
</el-form-item> </el-form-item>
<el-form-item label="登录账号:" prop="loginName"> <el-form-item label="登录账号:" prop="loginName">
<MOSTY.Other width="280px" placeholder="请输入登录账号" clearable v-model="dialogForm.loginName" /> <MOSTY.Other placeholder="请输入登录账号" clearable v-model="dialogForm.loginName" />
</el-form-item> </el-form-item>
<el-form-item label="密码:" v-if="!isEdit" prop="password"> <el-form-item label="密码:" v-if="!isEdit" prop="password">
<MOSTY.Other width="280px" placeholder="请输入密码" show-password v-model="dialogForm.password" /> <MOSTY.Other placeholder="请输入密码" show-password v-model="dialogForm.password" />
</el-form-item> </el-form-item>
<el-form-item label="身份证号" prop="idEntityCard"> <el-form-item label="身份证号" prop="idEntityCard">
<MOSTY.IdentityCard width="280px" v-model="dialogForm.idEntityCard" @change="fn" clearable> <MOSTY.IdentityCard v-model="dialogForm.idEntityCard" @change="fn" clearable>
</MOSTY.IdentityCard> </MOSTY.IdentityCard>
</el-form-item> </el-form-item>
<el-form-item label="警号" prop="inDustRialId"> <el-form-item label="警号" prop="inDustRialId">
<MOSTY.Other width="280px" placeholder="请输入警号" v-model="dialogForm.inDustRialId" /> <MOSTY.Other placeholder="请输入警号" v-model="dialogForm.inDustRialId" />
</el-form-item> </el-form-item>
<el-form-item label="岗位选择"> <el-form-item label="岗位选择">
<MOSTY.StationSelect width="300px" clearable filterable v-model="dialogForm.positionId" /> <MOSTY.StationSelect clearable filterable v-model="dialogForm.positionId" />
</el-form-item> </el-form-item>
<el-form-item label="用户类型:" prop="userType"> <el-form-item label="用户类型:" prop="userType" style="width: 240px;">
<el-select style="width: 100%" v-model="dialogForm.userType" placeholder="请选择用户类型"> <MOSTY.Select :dictEnum="D_BZ_YHLX" v-model="dialogForm.userType" clearable/>
<el-option v-for="dict in D_BZ_YHLX" :label="dict.label" :value="dict.value" :key="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="虚拟用户:" prop="isVirtualUser"> <el-form-item label="虚拟用户:" prop="isVirtualUser" style="width: 240px;">
<el-select style="width: 100%" v-model="dialogForm.isVirtualUser" placeholder="请选择"> <MOSTY.Select :dictEnum="D_BZ_XNYH" v-model="dialogForm.isVirtualUser" clearable/>
<el-option v-for="dict in D_BZ_XNYH" :label="dict.label" :value="dict.value" :key="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="电话号码:" prop="telePhone"> <el-form-item label="电话号码:" prop="telePhone">
<MOSTY.Phone width="280px" v-model="dialogForm.telePhone" maxlength="11" clearable></MOSTY.Phone> <MOSTY.Phone v-model="dialogForm.telePhone" maxlength="11" clearable></MOSTY.Phone>
</el-form-item> </el-form-item>
<el-form-item label="移动电话:" prop="mobile"> <el-form-item label="移动电话:" prop="mobile">
<MOSTY.Phone width="280px" v-model="dialogForm.mobile" maxlength="11" clearable></MOSTY.Phone> <MOSTY.Phone v-model="dialogForm.mobile" maxlength="11" clearable></MOSTY.Phone>
</el-form-item> </el-form-item>
<el-form-item label="民族:" prop="nation"> <el-form-item label="民族:" prop="nation">
<MOSTY.PackageSelect width="280px" v-model="dialogForm.nation" dictEnum="NATION" clearable filterable /> <MOSTY.PackageSelect v-model="dialogForm.nation" dictEnum="NATION" clearable filterable />
</el-form-item> </el-form-item>
<el-form-item label="性别:" prop="sex"> <el-form-item label="性别:" prop="sex" style="width: 240px;">
<el-select style="width: 100%" v-model="dialogForm.sex" placeholder="请选择性别"> <MOSTY.Select :dictEnum="D_BZ_XB" v-model="dialogForm.sex" clearable/>
<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>
<el-form-item label="文化程度:" prop="whcd"> <el-form-item label="文化程度:" prop="whcd">
<MOSTY.PackageSelect dictEnum="EDUCATION" width="280px" v-model="dialogForm.whcd" clearable filterable /> <MOSTY.PackageSelect dictEnum="EDUCATION" v-model="dialogForm.whcd" clearable filterable />
</el-form-item> </el-form-item>
<el-form-item label="E-mail" prop="email"> <el-form-item label="E-mail" prop="email">
<MOSTY.Email v-model="dialogForm.email" width="280px" clearable></MOSTY.Email> <MOSTY.Email v-model="dialogForm.email" clearable></MOSTY.Email>
</el-form-item> </el-form-item>
<el-form-item label="出生日期" prop="birthday"> <el-form-item label="出生日期" prop="birthday" style="width: 240px;">
<el-date-picker style="width: 100%" v-model="dialogForm.birthday" type="date" placeholder="出生日期" <MOSTY.Date type="date" format="YYYY/MM/DD" value-format="YYYY-MM-DD" v-model="dialogForm.birthday" clearable placeholder="请选择出生日期" />
format="YYYY/MM/DD" value-format="YYYY-MM-DD" />
</el-form-item> </el-form-item>
<el-form-item label="所属模块:" prop="politic"> <el-form-item label="所属模块:" prop="politic" style="width: 240px;">
<el-select style="width: 100%" v-model="dialogForm.politic" placeholder="请选择"> <MOSTY.Select :dictEnum="D_BZ_ZZMM" v-model="dialogForm.politic" clearable/>
<el-option v-for="dict in D_BZ_ZZMM" :label="dict.label" :value="dict.value" :key="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="婚姻状况:" prop="marital"> <el-form-item label="婚姻状况:" prop="marital" style="width: 240px;">
<el-select style="width: 100%" v-model="dialogForm.marital" placeholder="请选择婚姻状况"> <MOSTY.Select :dictEnum="D_BZ_HYZK" v-model="dialogForm.marital" clearable/>
<el-option v-for="dict in D_BZ_HYZK" :label="dict.label" :value="dict.value" :key="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="人员类别:" prop="type"> <el-form-item label="人员类别:" prop="type" style="width: 240px;">
<el-select style="width: 100%" v-model="dialogForm.type" placeholder="请选择人员类别"> <MOSTY.Select :dictEnum="D_BZ_RYLB" v-model="dialogForm.type" clearable/>
<el-option v-for="dict in D_BZ_RYLB" :label="dict.label" :value="dict.value" :key="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="有效期:" prop="endTime"> <el-form-item label="有效期:" prop="endTime">
<el-date-picker style="width: 100%" v-model="dialogForm.endTime" type="datetime" placeholder="请选择有效期" <MOSTY.Date type="datetime" format="YYYY/MM/DD hh:mm:ss" v-model="dialogForm.endTime" clearable placeholder="请选择有效期" />
format="YYYY/MM/DD hh:mm:ss" value-format="x" />
</el-form-item> </el-form-item>
<el-form-item label="是否融合"> <el-form-item label="是否融合" style="width: 240px;">
<el-select style="width: 100%" v-model="dialogForm.sfrh" placeholder="请选择"> <MOSTY.Select :dictEnum="D_BZ_SF" v-model="dialogForm.sfrh" clearable/>
<el-option v-for="dict in D_BZ_SF" :label="dict.label" :value="dict.value" :key="dict.value" />
</el-select>
</el-form-item> </el-form-item>
<el-form-item style="width: 100%" label="备注"> <el-form-item style="width: 100%" label="备注">

View File

@ -70,8 +70,14 @@
</div> </div>
</div> </div>
<Release v-model="showModel" :ItemData="ItemData" @SaveReport="SaveReport" title="帖子发布" :showCancel="false" <Release
:heightNumber="436"></Release> v-model="showModel"
:ItemData="ItemData"
@SaveReport="SaveReport"
title="帖子发布"
:showCancel="false"
:heightNumber="436">
</Release>
<Particulars ref="particulars" /> <Particulars ref="particulars" />
</template> </template>

View File

@ -21,12 +21,12 @@ import TheRight from "./components/theRight.vue";
<style scoped lang="scss"> <style scoped lang="scss">
.bilateral{ .bilateral{
background-color: #fff; background-color: #fff;
height: calc(100vh - 190px); height: calc(100vh - 190px);
display: flex; display: flex;
padding: 10px; padding: 10px;
color: #000; color: #000;
justify-content: space-between; justify-content: space-between;
.the-left{ .the-left{
width: 210px; width: 210px;
margin-right: 15px; margin-right: 15px;