项洋 4 weeks ago
commit a746f28aa3

@ -1,605 +0,0 @@
<!-- 单位自主填报 -->
<template>
<div class="L-main" id="L-size-main">
<div class="content-search" id="L-header">
<div class="search-title">查询条件</div>
<el-form
:inline="true"
ref="formInlineRef"
:model="pagination"
size="small"
class="demo-form-inline"
>
<el-row>
<el-col :span="6">
<el-form-item label="资产名称:" prop="name">
<el-input
v-model="pagination.name"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="审核状态:" prop="auditState">
<el-select
v-model="pagination.auditState"
placeholder="请选择审核状态"
>
<el-option label="待审核" value="1" />
<el-option label="审核通过" value="2" />
<el-option label="审核驳回" value="3" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" style="text-align: left">
<el-form-item class="unit-form">
<el-button size="mini" @click="resetQuery('queryFrom')"
>重置</el-button
>
<el-button
size="mini"
type="primary"
@click="handleQuery('queryFrom')"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<el-row class="mb8">
<el-col>
<div class="exportBtn">
<div
class="mybuttom"
:class="btnShow == item.value ? 'mybuttomshow' : ''"
v-for="(item, index) in btnArr"
@click="xuanzelist(item)"
>
{{ item.label }}
</div>
</div>
</el-col>
</el-row>
</div>
<section>
<el-table
v-loading="loading"
:data="tableData"
:height="tabHeader"
:max-height="tabHeader"
:row-class-name="tableRowClassName"
>
<el-table-column
type="index"
width="50"
label="序号"
align="center"
/>
<el-table-column
label="资产名称"
key="xtmc"
prop="xtmc"
align="center"
v-if="btnShow == 'web'"
/>
<el-table-column
label="所属单位"
key="dwmc"
prop="dwmc"
align="center"
v-if="btnShow == 'web'"
/>
<el-table-column
label="资产名称"
key="xcxmc"
prop="xcxmc"
align="center"
v-if="btnShow == 'xcx'"
/>
<el-table-column
label="资产名称"
key="gzhmc"
prop="gzhmc"
align="center"
v-if="btnShow == 'gzh'"
/>
<el-table-column
label="资产名称"
key="dzyxhz"
prop="dzyxhz"
align="center"
v-if="btnShow == 'emil'"
/>
<el-table-column
label="资产名称"
key="appName"
prop="appName"
align="center"
v-if="btnShow == 'app'"
/>
<el-table-column
label="所属单位"
key="ssdw"
prop="ssdw"
align="center"
v-if="btnShow !== 'web'"
/>
<el-table-column
label="平台类型"
key="ptlx"
prop="ptlx"
align="center"
v-if="btnShow == 'gzh'"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.sys_ptlx_type"
:value="scope.row.ptlx"
/>
</template>
</el-table-column>
<el-table-column
label="审核状态"
key="auditState"
width="200px"
prop="auditState"
class-name="table-status"
align="center"
>
<template slot-scope="scope">
<span v-if="scope.row.auditState == 1" style="color: #f58a0c">
待审核
</span>
<span v-if="scope.row.auditState == 2" style="color: #16b771">
审批通过
</span>
<span v-if="scope.row.auditState == 3" style="color: #f50c0c">
审批驳回
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template slot-scope="scope">
<div
style="
display: flex;
align-items: center;
justify-content: center;
"
>
<div
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row)"
>
<img
src="@/assets/images/icon-ck@2x.png"
alt=""
style="width: 20px; margin-right: 5px"
/>
<span class="look-info" style="color: #1485ef">查看</span>
</div>
<!-- -->
<div
v-if="scope.row.auditState == 3"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="delInfo(scope.row)"
>
<img
src="@/assets/images/edit.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span class="del-info" style="color: #1485ef">编辑</span>
</div>
<div
v-if="scope.row.auditState == 3"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="lookInfo(scope.row)"
>
<img
src="@/assets/images/icon-shenhe@2x.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span class="del-info" style="color: #1485ef">驳回原因</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="pagination.current"
:limit="pagination.size"
@pagination="getPagination"
:current-page.sync="pagination.current"
></my-pagination>
</main>
<my-dialog
title="查看原因"
ref="liebiaoDialog"
class="taskDialogBox"
width="40%"
>
<el-descriptions>
<el-descriptions-item label="不通过原因">
{{ chakanyuanyin }}
</el-descriptions-item>
</el-descriptions>
</my-dialog>
</div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue";
import myDialog from "@/views/components/myDialog/index.vue";
import danweiList from "@/views/system/user/danweiList.vue";
import {
addassetTaskadd,
getassetTask,
getassetTaskid,
assetTaskclose,
} from "@/api/renwuApi/index.js";
import {
getAuditList,
miniProgramsGetAuditList,
gzhGetAuditList,
EmailList,
AppList,
} from "@/api/auditPagesApi/index.js";
import { mapGetters } from "vuex";
export default {
dicts: ["sys_ptlx_type"],
components: { myPagination, myDialog, danweiList },
data() {
return {
btnloading: false,
total: 0,
pagination: {
current: 1,
size: 10,
dwmc: "",
auditState: "",
name: "",
},
tableData: [],
loading: false,
tabHeader: undefined,
btnArr: [
{
label: "web资产",
value: "web",
},
{
label: "小程序",
value: "xcx",
},
{
label: "公众号",
value: "gzh",
},
{
label: "电子邮件",
value: "emil",
},
{
label: "移动应用系统",
value: "app",
},
],
btnShow: "web",
chakanyuanyin: "",
};
},
computed: {
...mapGetters(["nickName"]),
},
mounted() {
// this.getInfo(1);
this.cancalDebounce();
window.addEventListener("resize", this.cancalDebounce);
},
destroyed() {
window.removeEventListener("resize", this.cancalDebounce);
},
methods: {
//
getInfo(id) {
this.loading = true;
this.pagination.dwmc = this.nickName;
// getassetTask(this.pagination).then(res => {
// this.loading = false;
// this.total = res.data.total;
// this.tableData = res.data.records;
// })
if (id == 1) {
getAuditList(this.pagination).then((res) => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
});
} else if (id == 2) {
miniProgramsGetAuditList(this.pagination).then((res) => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
});
} else if (id == 3) {
gzhGetAuditList(this.pagination).then((res) => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
});
} else if (id == 4) {
EmailList(this.pagination).then((res) => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
});
} else if (id == 5) {
AppList(this.pagination).then((res) => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
});
}
},
//
resetQuery() {
this.resetForm("formInlineRef");
this.pagination.current = 1;
if (this.btnShow == "web") {
this.getInfo(1);
} else if (this.btnShow == "xcx") {
this.getInfo(2);
} else if (this.btnShow == "gzh") {
this.getInfo(3);
} else if (this.btnShow == "emil") {
this.getInfo(4);
} else if (this.btnShow == "app") {
this.getInfo(5);
}
this.getInfo();
},
//
handleQuery() {
this.pagination.current = 1;
if (this.btnShow == "web") {
this.getInfo(1);
} else if (this.btnShow == "xcx") {
this.getInfo(2);
} else if (this.btnShow == "gzh") {
this.getInfo(3);
} else if (this.btnShow == "emil") {
this.getInfo(4);
} else if (this.btnShow == "app") {
this.getInfo(5);
}
},
//
getPagination(pages) {
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
if (this.btnShow == "web") {
this.getInfo(1);
} else if (this.btnShow == "xcx") {
this.getInfo(2);
} else if (this.btnShow == "gzh") {
this.getInfo(3);
} else if (this.btnShow == "emil") {
this.getInfo(4);
} else if (this.btnShow == "app") {
this.getInfo(5);
}
},
//
goInfo(row) {
this.$router.push({
name: "assetsAuthRecord",
query: {
type:
this.btnShow == "web"
? 0
: this.btnShow == "xcx"
? 1
: this.btnShow == "gzh"
? 2
: this.btnShow == "emil"
? 3
: this.btnShow == "app"
? 4
: 5,
pageType: "look",
btnShow: this.btnShow,
id:
this.btnShow == "web"
? row.currentId
: this.btnShow == "xcx"
? row.miniId
: this.btnShow == "gzh"
? row.accountId
: this.btnShow == "emil"
? row.emailId
: this.btnShow == "app"
? row.appId
: null,
name: "AssetRecord",
queryData: this.pagination,
},
});
},
//
delInfo(row) {
//taskAudit
this.$router.push({
name: "assetsAuthRecord",
query: {
type:
this.btnShow == "web"
? 0
: this.btnShow == "xcx"
? 1
: this.btnShow == "gzh"
? 2
: this.btnShow == "emil"
? 3
: this.btnShow == "app"
? 4
: 5,
pageType: "change",
btnShow: this.btnShow,
id:
this.btnShow == "web"
? row.currentId
: this.btnShow == "xcx"
? row.miniId
: this.btnShow == "gzh"
? row.accountId
: this.btnShow == "emil"
? row.emailId
: this.btnShow == "app"
? row.appId
: null,
name: "AssetRecord",
queryData: this.pagination,
},
});
},
//
lookInfo(row) {
this.chakanyuanyin = row.auditYy;
this.$refs.liebiaoDialog.open();
},
// tab
xuanzelist(item) {
this.btnShow = item.value;
switch (item.value) {
case "web":
this.getInfo(1);
break;
case "xcx":
this.getInfo(2);
break;
case "gzh":
this.getInfo(3);
break;
case "emil":
this.getInfo(4);
break;
case "app":
this.getInfo(5);
break;
default:
break;
}
},
// table
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) {
return "evenNumber-row";
}
return "";
},
//
cancalDebounce() {
const element = document.getElementById("L-size-main"); // ID
const header = document.getElementById("L-header"); // ID
const pagination = document.getElementById("L-pagination"); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - 140;
},
},
beforeRouteEnter(to, from, next) {
next((vm) => {
if (from.path == "/assetsAuthRecord") {
vm.btnShow = from.query.btnShow;
if (from.query.queryData) {
vm.pagination = from.query.queryData;
}
if (vm.btnShow == "web") {
vm.getInfo(1);
} else if (vm.btnShow == "xcx") {
vm.getInfo(2);
} else if (vm.btnShow == "gzh") {
vm.getInfo(3);
} else if (vm.btnShow == "emil") {
vm.getInfo(4);
} else if (vm.btnShow == "app") {
vm.getInfo(5);
}
} else {
vm.getInfo(1);
}
});
},
};
</script>
<style lang="scss" scoped>
.el-icon-s-unfold {
font-size: 16px;
}
// ::v-deep .el-dialog__body{
// padding-left: 80px;
// }
.el-icon-delete {
color: #409eff;
font-size: 16px;
font-weight: 600;
margin-right: 5px;
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
// background-color: rgba(30, 128, 235, 0.1);
background-color: rgba(213, 225, 236, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -0,0 +1,551 @@
<!-- 单位自主填报 -->
<template>
<div
class="L-main"
id="L-size-main"
>
<div
class="content-search"
id="L-header"
>
<div class="search-title">查询条件</div>
<el-form
:inline="true"
ref="formInlineRef"
:model="pagination"
size="medium"
class="demo-form-inline"
>
<el-row>
<el-col :span="6">
<el-form-item
label="资产名称:"
prop="name"
>
<el-input
v-model="pagination.name"
placeholder="请输入"
style="width: 95%;"
></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item
label="审核状态:"
prop="auditState"
>
<el-select
v-model="pagination.auditState"
placeholder="请选择审核状态"
>
<el-option
label="待审核"
value="1"
/>
<el-option
label="审核通过"
value="2"
/>
<el-option
label="审核驳回"
value="3"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="6"
style="text-align: left"
>
<el-form-item class="unit-form">
<el-button @click="resetQuery('queryFrom')"></el-button>
<el-button
type="primary"
@click="handleQuery('queryFrom')"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<el-row class="mb8">
<el-col>
<div class="exportBtn">
<div
class="mybuttom"
:class="btnShow == item.value ? 'mybuttomshow' : ''"
v-for="(item, index) in btnArr"
@click="xuanzelist(item)"
>
{{ item.label }}
</div>
</div>
</el-col>
</el-row>
</div>
<section>
<el-table
v-loading="loading"
:data="tableData"
:height="tabHeader"
:max-height="tabHeader"
:row-class-name="tableRowClassName"
>
<el-table-column
type="index"
width="70"
label="序号"
align="center"
/>
<el-table-column
label="资产名称"
key="xtmc"
prop="xtmc"
align="center"
v-if="btnShow == 'web'"
/>
<el-table-column
label="所属单位"
key="dwmc"
prop="dwmc"
align="center"
v-if="btnShow == 'web'"
/>
<el-table-column
label="资产名称"
key="xcxmc"
prop="xcxmc"
align="center"
v-if="btnShow == 'xcx'"
/>
<el-table-column
label="资产名称"
key="gzhmc"
prop="gzhmc"
align="center"
v-if="btnShow == 'gzh'"
/>
<el-table-column
label="资产名称"
key="dzyxhz"
prop="dzyxhz"
align="center"
v-if="btnShow == 'emil'"
/>
<el-table-column
label="资产名称"
key="appName"
prop="appName"
align="center"
v-if="btnShow == 'app'"
/>
<el-table-column
label="所属单位"
key="ssdw"
prop="ssdw"
align="center"
v-if="btnShow !== 'web'"
/>
<el-table-column
label="平台类型"
key="ptlx"
prop="ptlx"
align="center"
v-if="btnShow == 'gzh'"
>
<template #default="{ row }">
<dict-tag
:options="sys_ptlx_type"
:value="row.ptlx"
/>
</template>
</el-table-column>
<el-table-column
label="审核状态"
key="auditState"
width="200px"
prop="auditState"
class-name="table-status"
align="center"
>
<template #default="{ row }">
<span
v-if="row.auditState == 1"
style="color: #f58a0c"
>
待审核
</span>
<span
v-if="row.auditState == 2"
style="color: #16b771"
>
审批通过
</span>
<span
v-if="row.auditState == 3"
style="color: #f50c0c"
>
审批驳回
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template #default="{ row }">
<div
style="
display: flex;
align-items: center;
justify-content: center;
"
>
<div
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(row)"
>
<img
src="@/assets/images/icon-ck@2x.png"
alt=""
style="width: 20px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef"
>查看</span
>
</div>
<!-- -->
<div
v-if="row.auditState == 3"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="delInfo(row)"
>
<img
src="@/assets/images/edit.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span
class="del-info"
style="color: #1485ef"
>编辑</span
>
</div>
<div
v-if="row.auditState == 3"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="lookInfo(row)"
>
<img
src="@/assets/images/icon-shenhe@2x.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span
class="del-info"
style="color: #1485ef"
>驳回原因</span
>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="pagination.current"
:limit="pagination.size"
@pagination="getPagination"
:current-page.sync="pagination.current"
></my-pagination>
</main>
<!-- <my-dialog
title="查看原因"
ref="liebiaoDialog"
class="taskDialogBox"
width="40%"
>
<el-descriptions>
<el-descriptions-item label="不通过原因">
{{ chakanyuanyin }}
</el-descriptions-item>
</el-descriptions>
</my-dialog> -->
</div>
</template>
<script setup>
import { ref, onMounted, onUnmounted, computed } from 'vue'
import { useRouter } from 'vue-router'
import myPagination from "@/views/components/Pagination/index.vue"
// import myDialog from "@/views/components/myDialog/index.vue"
// import danweiList from "@/views/system/user/danweiList.vue"
import {
addassetTaskadd,
getassetTask,
getassetTaskid,
assetTaskclose,
} from "@/api/renwuApi/index.js"
import {
getAuditList,
miniProgramsGetAuditList,
gzhGetAuditList,
EmailList,
AppList,
} from "@/api/auditPagesApi/index.js"
const router = useRouter()
//
const pagination = ref({
current: 1,
size: 10,
dwmc: "",
auditState: "",
name: ""
})
const tableData = ref([])
const total = ref(0)
const loading = ref(false)
const tabHeader = ref(undefined)
const btnShow = ref("web")
const chakanyuanyin = ref("")
const btnArr = [
{ label: "web资产", value: "web" },
{ label: "小程序", value: "xcx" },
{ label: "公众号", value: "gzh" },
{ label: "电子邮件", value: "emil" },
{ label: "移动应用系统", value: "app" }
]
//
const getInfo = (id) => {
loading.value = true
if (id === 1) {
getAuditList(pagination.value).then((res) => {
loading.value = false
total.value = res.data.total
tableData.value = res.data.records
})
} else if (id === 2) {
miniProgramsGetAuditList(pagination.value).then((res) => {
loading.value = false
total.value = res.data.total
tableData.value = res.data.records
})
} else if (id === 3) {
gzhGetAuditList(pagination.value).then((res) => {
loading.value = false
total.value = res.data.total
tableData.value = res.data.records
})
} else if (id === 4) {
EmailList(pagination.value).then((res) => {
loading.value = false
total.value = res.data.total
tableData.value = res.data.records
})
} else if (id === 5) {
AppList(pagination.value).then((res) => {
loading.value = false
total.value = res.data.total
tableData.value = res.data.records
})
}
}
//
const resetQuery = () => {
// resetForm
// resetForm("formInlineRef")
pagination.value.current = 1
switch (btnShow.value) {
case "web": getInfo(1); break
case "xcx": getInfo(2); break
case "gzh": getInfo(3); break
case "emil": getInfo(4); break
case "app": getInfo(5); break
}
}
//
const handleQuery = () => {
pagination.value.current = 1
switch (btnShow.value) {
case "web": getInfo(1); break
case "xcx": getInfo(2); break
case "gzh": getInfo(3); break
case "emil": getInfo(4); break
case "app": getInfo(5); break
}
}
//
const getPagination = (pages) => {
pagination.value.current = pages.page
pagination.value.size = pages.limit
switch (btnShow.value) {
case "web": getInfo(1); break
case "xcx": getInfo(2); break
case "gzh": getInfo(3); break
case "emil": getInfo(4); break
case "app": getInfo(5); break
}
}
//
const goInfo = (row) => {
router.push({
name: "assetsAuthRecord",
query: {
type: btnShow.value === "web" ? 0 :
btnShow.value === "xcx" ? 1 :
btnShow.value === "gzh" ? 2 :
btnShow.value === "emil" ? 3 :
btnShow.value === "app" ? 4 : 5,
pageType: "look",
btnShow: btnShow.value,
id: btnShow.value === "web" ? row.currentId :
btnShow.value === "xcx" ? row.miniId :
btnShow.value === "gzh" ? row.accountId :
btnShow.value === "emil" ? row.emailId :
btnShow.value === "app" ? row.appId : null,
name: "AssetRecord",
queryData: pagination.value
}
})
}
//
const delInfo = (row) => {
router.push({
name: "assetsAuthRecord",
query: {
type: btnShow.value === "web" ? 0 :
btnShow.value === "xcx" ? 1 :
btnShow.value === "gzh" ? 2 :
btnShow.value === "emil" ? 3 :
btnShow.value === "app" ? 4 : 5,
pageType: "change",
btnShow: btnShow.value,
id: btnShow.value === "web" ? row.currentId :
btnShow.value === "xcx" ? row.miniId :
btnShow.value === "gzh" ? row.accountId :
btnShow.value === "emil" ? row.emailId :
btnShow.value === "app" ? row.appId : null,
name: "AssetRecord",
queryData: pagination.value
}
})
}
//
const lookInfo = (row) => {
chakanyuanyin.value = row.auditYy
// liebiaoDialog.value.open()
}
// tab
const xuanzelist = (item) => {
btnShow.value = item.value
switch (item.value) {
case "web": getInfo(1); break
case "xcx": getInfo(2); break
case "gzh": getInfo(3); break
case "emil": getInfo(4); break
case "app": getInfo(5); break
}
}
// table
const tableRowClassName = ({ rowIndex }) => {
return rowIndex % 2 !== 0 ? "evenNumber-row" : ""
}
//
const cancalDebounce = () => {
const element = document.getElementById("L-size-main")
const header = document.getElementById("L-header")
const paginationEl = document.getElementById("L-pagination")
const elementHeight = element?.offsetHeight || 0
const headerHeight = header?.offsetHeight || 0
const paginationtHeight = paginationEl?.offsetHeight || 0
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 140
}
onMounted(() => {
window.addEventListener("resize", cancalDebounce)
//
getInfo(1)
})
onUnmounted(() => {
window.removeEventListener("resize", cancalDebounce)
})
</script>
<style lang="scss" scoped>
.el-icon-s-unfold {
font-size: 16px;
}
// ::v-deep .el-dialog__body{
// padding-left: 80px;
// }
.el-icon-delete {
color: #409eff;
font-size: 16px;
font-weight: 600;
margin-right: 5px;
}
.exportBtn {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
}
.mybuttom {
margin: 0 10px;
display: inline-block;
padding: 5px 20px;
// background-color: rgba(30, 128, 235, 0.1);
background-color: rgba(213, 225, 236, 0.1);
border-radius: 8px;
border: 1px solid #1e80eb;
font-size: 14px;
color: #1e80eb;
font-family: Source Han Sans CN;
cursor: pointer;
&:hover {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
}
.mybuttomshow {
background-color: #1e80eb;
color: #ffffff;
border: 1px solid #1e80eb;
}
</style>

@ -1,9 +1,16 @@
<template> <template>
<el-dialog :title="title" :visible.sync="dialogFormVisible" :close-on-click-modal="false" <el-dialog
:close-on-press-escape="false" :custom-class="myclass ? 'custom-my-class' : ''" @close="resetCancel" :width="width" :title="title"
append-to-body> v-model="dialogFormVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
:custom-class="myclass ? 'custom-my-class' : ''"
@close="resetCancel"
:width="width"
append-to-body
>
<slot></slot> <slot></slot>
<div slot="footer" class="dialog-footer" v-if="footer"> <div v-if="footer" slot="footer" class="dialog-footer">
<el-form size="small"> <el-form size="small">
<el-form-item class="dialog-from-item"> <el-form-item class="dialog-from-item">
<el-button size="mini" @click="resetCancel">{{ closeText }}</el-button> <el-button size="mini" @click="resetCancel">{{ closeText }}</el-button>
@ -13,21 +20,19 @@
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script>
export default { <script setup>
data() { import { ref } from 'vue'
return {
dialogFormVisible: false, // Props
} const props = defineProps({
},
props: {
title: { title: {
type: String, type: String,
default: '' default: ''
}, },
myclass: { myclass: {
type: Boolean, type: Boolean,
default: false, default: false
}, },
closeText: { closeText: {
type: String, type: String,
@ -35,31 +40,43 @@ export default {
}, },
width: { width: {
type: String, type: String,
default: "50%" default: '50%'
}, },
footer: { footer: {
type: Boolean, type: Boolean,
default: false, default: false
} }
}, })
methods: {
open() { // Emits
this.dialogFormVisible = true const emit = defineEmits(['close', 'confirm'])
},
close() { // Dialog visible state ()
this.dialogFormVisible = false; const dialogFormVisible = ref(false)
},
// Methods
const open = () => {
dialogFormVisible.value = true
}
const close = () => {
dialogFormVisible.value = false
}
// //
resetCancel() { const resetCancel = () => {
this.$emit('close') emit('close')
}, }
// //
resetConfirm() { const resetConfirm = () => {
this.$emit('confirm') emit('confirm')
},
},
} }
// 使
defineExpose({ open, close })
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-dialog { ::v-deep .el-dialog {
border-radius: 10px; border-radius: 10px;

File diff suppressed because it is too large Load Diff

@ -22,6 +22,7 @@
<el-input <el-input
v-model="formInline.taskName" v-model="formInline.taskName"
placeholder="请输入" placeholder="请输入"
style="width: 95%;"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -31,6 +32,7 @@
<el-select <el-select
v-model="formInline.taskStatus" v-model="formInline.taskStatus"
placeholder="请选择" placeholder="请选择"
style="width: 95%;"
> >
<el-option <el-option
label="已关闭" label="已关闭"

@ -289,7 +289,7 @@
import { ref, onMounted, onUnmounted } from "vue"; import { ref, onMounted, onUnmounted } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import myPagination from "@/views/components/Pagination/index.vue"
import { import {
getAuditList, getAuditList,
miniProgramsGetAuditList, miniProgramsGetAuditList,

@ -1,3 +1,971 @@
<!-- 新增单位 -->
<template> <template>
<div>单位信息表单页</div> <div class="L-assets-info">
<div class="assets-info-top">
<el-row style="margin: 10px 0">
<span class="top-title-box">基本信息</span>
</el-row>
<div class="assets-info-box">
<el-form
v-loading="loading"
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-width="170px"
class="demo-ruleForm"
label-position="right"
:disabled="disabled"
>
<el-row>
<el-col :span="12">
<el-form-item
label="单位名称"
required
prop="nickName"
>
<el-input
v-model="ruleForm.nickName"
disabled
:placeholder="disabled ? '' : '请输入单位名称'"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位简称">
<el-input
v-model="ruleForm.dwjc"
:placeholder="disabled ? '' : '请输入单位简称'"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="所属区域"
required
prop="ssqy"
>
<el-cascader
size="large"
:props="props"
:options="options"
v-model="ruleForm.ssqy"
>
</el-cascader>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="单位详细地址"
required
prop="dwxxdz"
>
<el-input
v-model="ruleForm.dwxxdz"
:placeholder="disabled ? '' : '请输入单位详细地址'"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="所属行业"
required
prop="sshy"
>
<el-select
v-model="ruleForm.sshy"
:placeholder="disabled ? '' : '请选择所属行业'"
>
<el-option
v-for="dict in sshy"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="单位类型"
required
prop="dwlx"
>
<el-select
v-model="ruleForm.dwlx"
:placeholder="disabled ? '' : '请选择单位类型'"
>
<el-option
v-for="dict in dwlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="单位标签">
<el-select
v-model="ruleForm.dwbq"
:placeholder="disabled ? '' : '请选择单位标签'"
>
<el-option
v-for="dict in zc_xtzyx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属监管单位">
<el-input
v-model="ruleForm.ssjgdw"
:placeholder="disabled ? '' : '请输入监管单位'"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="单位角色">
<el-select
v-model="ruleForm.dwjs"
:placeholder="disabled ? '' : '请选择单位角色'"
>
<el-option
v-for="dict in dwjs"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位直属性质">
<el-select
v-model="ruleForm.dwzsxz"
:placeholder="disabled ? '' : '请选择单位直属性质'"
>
<el-option
v-for="dict in dwzsxz"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="统一社会信用代码"
prop="userName"
>
<el-input
v-model="ruleForm.userName"
disabled
:placeholder="disabled ? '' : '请输入统一社会信用代码'"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否关基单位">
<el-select
v-model="ruleForm.gjdw"
:placeholder="disabled ? '' : '请选择是否关基单位'"
>
<el-option
v-for="dict in is_no"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="日常运营负责部门"
required
prop="rcyyfzbm"
>
<el-input
v-model="ruleForm.rcyyfzbm"
:placeholder="disabled ? '' : '请输入日常运营负责部门'"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="组织架构"
required
prop="zzjg"
>
<!-- @change="handleChange" -->
<el-cascader
v-model="ruleForm.zzjg"
:options="optionsTwo"
disabled
>
</el-cascader>
</el-form-item>
</el-col>
</el-row>
<!-- 111111111111111111111111111111111111111111111111 -->
<!-- 联系人 -->
<el-row style="margin: 10px 0">
<span class="top-title-box">联系人</span>
</el-row>
<el-row>
<el-form-item
label="单位负责人"
required
class="daoqitixingren"
style="width: 100%"
>
<el-input
v-model="ruleForm.dwfzrxm"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系人'"
></el-input>
<el-input
v-model="ruleForm.dwfzrlxfs"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系方式'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
required: true,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
></el-input>
<el-input
v-model="ruleForm.dwfzryx"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入邮箱'"
:rules="[
{
type: 'email',
required: true,
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
></el-input>
<el-input
v-model="ruleForm.dwfzrzwzc"
style="width: 23%"
:placeholder="disabled ? '' : '请输入职务职称'"
></el-input>
</el-form-item>
<el-form-item
label="分管负责人"
class="daoqitixingren"
style="width: 100%"
>
<el-input
v-model="ruleForm.fgfzrxm"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系人'"
></el-input>
<el-input
v-model="ruleForm.fgfzrlxfs"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系方式'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
></el-input>
<el-input
v-model="ruleForm.fgfzryx"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入邮箱'"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
></el-input>
<el-input
v-model="ruleForm.fgfzrzwzc"
style="width: 23%"
:placeholder="disabled ? '' : '请输入职务职称'"
></el-input>
</el-form-item>
<el-form-item
label="部门负责人"
class="daoqitixingren"
style="width: 100%"
>
<el-input
v-model="ruleForm.bmfzrxm"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系人'"
></el-input>
<el-input
v-model="ruleForm.bmfzrlxfs"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系方式'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
></el-input>
<el-input
v-model="ruleForm.bmfzryx"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入邮箱'"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
></el-input>
<el-input
v-model="ruleForm.bmfzrzwzc"
style="width: 23%"
:placeholder="disabled ? '' : '请输入职务职称'"
></el-input>
</el-form-item>
<el-form-item
label="第一联系人"
class="daoqitixingren"
style="width: 100%"
>
<el-input
v-model="ruleForm.dylxrxm"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系人'"
></el-input>
<el-input
v-model="ruleForm.dylxrlxfs"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系方式'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
></el-input>
<el-input
v-model="ruleForm.dylxryx"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入邮箱'"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
></el-input>
<el-input
v-model="ruleForm.dylxrzwzc"
style="width: 23%"
:placeholder="disabled ? '' : '请输入职务职称'"
></el-input>
</el-form-item>
<el-form-item
label="首席数据官"
class="daoqitixingren"
style="width: 100%"
>
<el-input
v-model="ruleForm.sxsjg"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系人'"
></el-input>
<el-input
v-model="ruleForm.sxsjglxfs"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系方式'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
></el-input>
<el-input
v-model="ruleForm.sxsjgyx"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入邮箱'"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
></el-input>
<el-input
v-model="ruleForm.sxsjgzwzc"
style="width: 23%"
:placeholder="disabled ? '' : '请输入职务职称'"
></el-input>
</el-form-item>
<el-form-item
label="数据官联络人"
class="daoqitixingren"
style="width: 100%"
>
<el-input
v-model="ruleForm.sjgllr"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系人'"
></el-input>
<el-input
v-model="ruleForm.sjgllrlxfs"
style="width: 24%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系方式'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
></el-input>
<el-input
v-model="ruleForm.sjgllryx"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入邮箱'"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
></el-input>
<el-input
v-model="ruleForm.sjgllrzwzc"
style="width: 23%"
:placeholder="disabled ? '' : '请输入职务职称'"
></el-input>
</el-form-item>
<el-form-item
label="其他联系人"
class="daoqitixingren"
v-for="(domain, index) in ruleForm.otherConcat"
:key="domain.key"
>
<el-input
v-model="domain.qtlxrxm"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系人'"
></el-input>
<el-input
v-model="domain.qtlxrlxfs"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入联系方式'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
></el-input>
<el-input
v-model="domain.qtlxryx"
style="width: 23%; margin-right: 2%"
:placeholder="disabled ? '' : '请输入邮箱'"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
></el-input>
<el-input
v-model="domain.qtlxrzwzc"
style="width: 23%"
:placeholder="disabled ? '' : '请输入职务职称'"
></el-input>
<i
v-if="isDisabled"
@click="removeDomain(domain, 'otherConcat')"
class="el-icon-remove-outline"
style="margin-left: 10px; font-size: 16px; cursor: pointer"
></i>
</el-form-item>
</el-row>
<el-row v-if="$route.query.pageType !== 'look'">
<el-col :span="24">
<el-form-item>
<el-button @click="addForm('otherConcat')"
>添加其他联系人</el-button
>
</el-form-item>
</el-col>
</el-row>
<!-- 检查信息
:rules="[
{
required: true,
message: '请选择时间',
trigger: ['change']
}
]"-->
<el-row style="margin: 10px 0">
<span class="top-title-box">检查信息</span>
</el-row>
<div
v-for="(domain, index) in ruleForm.jcxxList"
:key="domain.key"
:prop="'jcxxList.' + index + '.value'"
>
<el-row style="display: flex">
<el-col :span="8">
<el-form-item
class="daoqitixingren"
:label="'时间' + (index == 0 ? '' : index)"
>
<el-date-picker
v-model="domain.sj"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:placeholder="disabled ? '' : '选择日期'"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
class="daoqitixingren"
:label="'系统域名' + (index == 0 ? '' : index)"
>
<el-input
v-model="domain.xtym"
:placeholder="disabled ? '' : '请输入系统域名'"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item
class="daoqitixingren"
:label="'系统名称' + (index == 0 ? '' : index)"
>
<el-input
v-model="domain.xthc"
:placeholder="disabled ? '' : '请输入系统名称'"
></el-input>
</el-form-item>
</el-col>
<el-col
:span="1"
style="text-align: center"
v-if="isDisabled"
>
<i
@click="addGongyinglian('jcxxList')"
v-if="index == 0"
class="el-icon-circle-plus-outline"
style="margin-top: 10px; font-size: 16px; cursor: pointer"
></i>
<i
@click="removeDomain(domain, 'jcxxList')"
v-else
class="el-icon-remove-outline"
style="margin-top: 10px; font-size: 16px; cursor: pointer"
></i>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="'等保级别' + (index == 0 ? '' : index)">
<el-select
v-model="domain.dbjb"
:placeholder="disabled ? '' : '请选择等保级别'"
>
<el-option
v-for="dict in dbxx_dbdj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="'单位名称' + (index == 0 ? '' : index)">
<el-input
v-model="domain.dwmc"
:placeholder="disabled ? '' : '请输入单位名称'"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item :label="'检查结果' + (index == 0 ? '' : index)">
<el-input
type="textarea"
resize="none"
:placeholder="disabled ? '' : '请输入检查结果'"
:rows="5"
v-model="domain.jcjg"
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<!-- 更多信息 -->
<el-row style="margin: 10px 0">
<span class="top-title-box">更多信息</span>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="官网">
<el-input
v-model="ruleForm.gw"
:placeholder="disabled ? '' : '请输入官网'"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地图经度">
<el-input
v-model="ruleForm.dtjd"
:placeholder="disabled ? '' : '请输入地图经度'"
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="地图纬度">
<el-input
v-model="ruleForm.dtwd"
:placeholder="disabled ? '' : '请输入地图纬度'"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item
label="上级单位"
required
prop="sjdw"
>
<el-input
v-model="ruleForm.sjdw"
:placeholder="disabled ? '' : '请输入上级单位'"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input
type="textarea"
resize="none"
:placeholder="disabled ? '' : '请输入备注'"
:rows="5"
v-model="ruleForm.remark"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
>
<el-button
type="danger"
@click="cancel"
:disabled="false"
v-if="isDisabled"
>取消</el-button
>
<el-button
type="warning"
@click="editUnit"
v-if="!isDisabled && userStore.nickName != 'admin'"
:disabled="isDisabled"
>编辑</el-button
>
<el-button
type="primary"
@click="newUnit"
:disabled="false"
v-if="isDisabled"
>确定</el-button
>
</el-row>
</el-form>
</div>
</div>
</div>
</template> </template>
<script setup>
import { ref, onMounted } from "vue";
import pcas from "@/utils/pca-code.json";
import { unitOwnInfo, unitEditOwn } from "@/api/auditPagesApi/index";
import useUserStore from "@/store/modules/user";
import { useRouter } from "vue-router";
import { ElMessage } from "element-plus";
const userStore = useUserStore();
const router = useRouter();
const { proxy } = getCurrentInstance();
const { dwlx, sshy, zc_xtzyx, dbxx_dbdj, dwjs, dwzsxz, is_no } = proxy.useDict(
"dwxl",
"sshy",
"zc_xtzyx",
"dbxx_dbdj",
"dwjs",
"dwzsxz",
"is_no"
);
// === data ===
const options = pcas;
const isDisabled = ref(false);
const disabled = ref(false);
const loading = ref(false);
const optionsTwo = [
{
value: "100",
label: "政务",
children: [
{ value: "101", label: "党委机关" },
{ value: "102", label: "政府机关" },
{ value: "200", label: "事业单位" },
{ value: "202", label: "大型国企" },
],
},
{
value: "10",
label: "民营企业",
children: [
{ value: "203", label: "重点民企" },
{ value: "204", label: "一般民企" },
],
},
{ value: "20", label: "个人" },
{ value: "30", label: "社会团体" },
];
const props = {
value: "value",
label: "value",
checkStrictly: true,
};
const ruleForm = ref({
otherConcat: [{ qtlxrxm: "", qtlxrlxfs: "", qtlxryx: "", qtlxrzwzc: "" }],
ssqy: [],
jcxxList: [
{
sj: "",
xtym: "",
xthc: "",
dbjb: "",
dwmc: "",
jcjg: "",
key: Date.now(),
},
],
dwjc: "",
dwxxdz: "",
dwbq: "",
ssjgdw: "",
dwjs: "",
dwzsxz: "",
userName: "",
gjdw: "",
rcyyfzbm: "",
sshy: "",
dwlx: "",
zzjg: [],
sjdw: "",
gw: "",
dtjd: "",
dtwd: "",
remark: "",
dwfzrxm: "",
dwfzrlxfs: "",
dwfzryx: "",
dwfzrzwzc: "",
});
const rules = {
userName: [
{ required: true, message: "请输入统一社会信用代码", trigger: "blur" },
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: "请输入正确格式的18位统一社会信用代码",
trigger: "blur",
},
],
nickName: [{ required: true, message: "请输入单位名称", trigger: "blur" }],
zzjg: [{ required: true, message: "请选择组织机构", trigger: "change" }],
ssqy: [{ required: true, message: "请选择所属区域", trigger: "change" }],
dwxxdz: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
sshy: [{ required: true, message: "请选择所属行业", trigger: "change" }],
dwlx: [{ required: true, message: "请选择单位类型", trigger: "change" }],
rcyyfzbm: [
{ required: true, message: "请输入日常运营负责部门", trigger: "blur" },
],
sjdw: [{ required: true, message: "请输入上级单位", trigger: "blur" }],
dwfzrxm: [
{ required: true, message: "请输入单位负责人姓名", trigger: "blur" },
],
dwfzrzwzc: [
{ required: true, message: "请输入单位负责人职务职称", trigger: "blur" },
],
};
const validateTyshxydm = (rule, value, callback) => {
const pattern = /^[a-zA-Z0-9]{18}$/;
if (!pattern.test(value)) {
callback(new Error("请输入正确格式的18位统一社会信用代码"));
return;
}
callback();
};
const getInfo = () => {
loading.value = true;
unitOwnInfo()
.then((res) => {
ruleForm.value = res.data;
if (res.data.ssqyprovince && res.data.ssqycity && res.data.ssqycounty) {
ruleForm.value.ssqy = [
res.data.ssqyprovince,
res.data.ssqycity,
res.data.ssqycounty,
];
} else if (res.data.ssqyprovince && res.data.ssqycity) {
ruleForm.value.ssqy = [res.data.ssqyprovince, res.data.ssqycity];
} else if (res.data.ssqyprovince) {
ruleForm.value.ssqy = [res.data.ssqyprovince];
}
if (!res.data.jcxxList) {
ruleForm.value.jcxxList = [
{
sj: "",
xtym: "",
xthc: "",
dbjb: "",
dwmc: "",
jcjg: "",
key: Date.now(),
},
];
}
if (res.data.ancestors) {
let deptId = res.data.ancestors.split(",");
ruleForm.value.zzjg = deptId;
}
loading.value = false;
nextTick(() => {
proxy.$refs.ruleForm?.clearValidate();
});
})
.catch(() => {
loading.value = false;
});
};
console.log("【接口返回】", res.data);
console.log("【jcxxList 数据】", ruleForm.value.jcxxList);
console.log("【是否存在 jcxxList】", !!ruleForm.value.jcxxList);
console.log("【jcxxList 类型】", typeof ruleForm.value.jcxxList);
console.log("【第一个元素字段】", ruleForm.value.jcxxList[0]);
const addForm = (type) => {
ruleForm.value[type].push({
qtlxrxm: "",
qtlxrlxfs: "",
qtlxryx: "",
qtlxrzwzc: "",
key: Date.now(),
});
};
const addGongyinglian = (type) => {
ruleForm.value[type].push({
sj: "",
xtym: "",
xthc: "",
dbjb: "",
dwmc: "",
jcjg: "",
key: Date.now(),
});
};
const removeDomain = (item, type) => {
const index = ruleForm.value[type].indexOf(item);
if (index !== -1) {
ruleForm.value[type].splice(index, 1);
}
};
const newUnit = () => {
// this.$refs['ruleForm'].validate((valid) => {
// if (valid) {
// ...
// }
// })
ElMessage.success("修改成功");
disabled.value = true;
isDisabled.value = false;
getInfo();
};
const cancel = () => {
router.back();
};
const editUnit = () => {
disabled.value = false;
isDisabled.value = true;
};
onMounted(() => {
console.log(userStore.nickName);
if (userStore.nickName === "admin") {
disabled.value = true;
} else {
getInfo();
disabled.value = true;
}
});
</script>

Loading…
Cancel
Save