# Conflicts:
#	src/views/assetsManage2/webZC-info/index.vue
main
项洋 2 weeks ago
commit 6dcd966db0

@ -1,53 +0,0 @@
<template>
<assetsTypeOne :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-if="$route.query.type == 0" />
<assetsTypeTwo :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 1" />
<assetsTypeThree :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 2" />
<assetsTypeFour :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 3" />
<assetsTypeFive :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 4" />
</template>
<script>
// web
import assetsTypeOne from "@/views/components/myAssetsType/index.vue"
//
import assetsTypeTwo from "@/views/components/myAssetsType/index_v1.vue"
//
import assetsTypeThree from "@/views/components/myAssetsType/index_v2.vue"
//
import assetsTypeFour from "@/views/components/myAssetsType/index_v3.vue"
//
import assetsTypeFive from "@/views/components/myAssetsType/index_v4.vue"
export default {
name: "AssetsAuth",
components:{
assetsTypeOne,
assetsTypeTwo,
assetsTypeThree,
assetsTypeFour,
assetsTypeFive,
},
data() {
return {
}
},
beforeRouteEnter(to,from,next){
to.meta.type = to.query.type
if(to.meta.pageType == 'look') {
to.meta.title = '查看资产'
} else if(to.meta.pageType == 'change'){
to.meta.title = '修改资产'
}
// if(to.meta.type == 0) {
// to.meta.activeMenu = "/assetRecord/myWebAssets"
// } else if(to.meta.type == 1) {
// to.meta.activeMenu = "/assetRecord/myProgram"
// } else if(to.meta.type == 2) {
// to.meta.activeMenu = "/assetRecord/myOfficialAccount"
// } else if(to.meta.type == 3) {
// to.meta.activeMenu = "/assetRecord/myEmail"
// } else if(to.meta.type == 4) {
// to.meta.activeMenu = "/assetRecord/myMobileApplication"
// }
next();
},
}
</script>

@ -1,4 +1,4 @@
<!-- 单位自主填报 -->
<!-- 资产填报记录 -->
<template>
<div
class="L-main"
@ -509,9 +509,6 @@ onUnmounted(() => {
font-size: 16px;
}
// ::v-deep .el-dialog__body{
// padding-left: 80px;
// }
.el-icon-delete {
color: #409eff;
font-size: 16px;

@ -1,3 +0,0 @@
<template>
<div>这是新增的小程序表单</div>
</template>

@ -5203,7 +5203,7 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .input-selct-slot {
:deep(.input-selct-slot) {
.el-input-group__prepend {
width: 125px !important;
.el-select {
@ -5219,7 +5219,7 @@ export default {
padding-left: 10px;
}
}
::v-deep .listFormItem {
:deep(.listFormItem) {
position: relative;
margin-bottom: 0;
& > .el-form-item__content {

@ -46,7 +46,6 @@
:inline="true"
ref="queryFormRef"
:model="formInline"
:size="size"
class="demo-form-inline"
>
<el-row>
@ -58,7 +57,7 @@
<el-input
v-model="formInline.dwmc"
placeholder="请输入所属单位"
style="width: 95%;"
style="width: 95%"
/>
</el-form-item>
</el-col>
@ -70,7 +69,7 @@
<el-input
v-model="formInline.dzyxhz"
placeholder="请输入电子邮箱后缀"
style="width: 95%;"
style="width: 95%"
/>
</el-form-item>
</el-col>
@ -165,10 +164,9 @@
align="center"
>
<template #default="{ row }">
<span
:style="{ color: row.xzType == 1 ? 'blue' : '' }"
>{{ row.ssdw }}</span
>
<span :style="{ color: row.xzType == 1 ? 'blue' : '' }">{{
row.ssdw
}}</span>
</template>
</el-table-column>
<el-table-column

@ -47,7 +47,6 @@
:inline="true"
ref="queryForm"
:model="formInline"
:size="size"
class="demo-form-inline"
>
<el-row>
@ -456,7 +455,6 @@ const upload = reactive({
: location.origin + "/api/tc/assetOfficialAccount/importData",
});
//
onMounted(() => {
if (Object.keys(route.params).length !== 0) {
@ -469,7 +467,6 @@ onMounted(() => {
getDeptTree();
cancalDebounce();
window.addEventListener("resize", cancalDebounce);
});
onUnmounted(() => {
@ -549,10 +546,14 @@ const handleImport = () => {
//
function handleExport() {
proxy.download("/tc/assetOfficialAccount/export", {
proxy.download(
"/tc/assetOfficialAccount/export",
{
...formInline.value,
},`公众号资产${new Date().getTime()}.xlsx`)
};
},
`公众号资产${new Date().getTime()}.xlsx`
);
}
/** 下载模板操作 */
const importTemplate = () => {

@ -29,20 +29,33 @@
/>
</div>
</el-col>
<el-col :span="20" :xs="24" style="height: 100%; flex: 1">
<div class="L-main" id="L-size-main">
<div class="content-search" id="L-header">
<el-col
:span="20"
:xs="24"
style="height: 100%; flex: 1"
>
<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="queryForm"
:model="formInline"
size="small"
size="default"
class="demo-form-inline"
>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="系统名称:" prop="xtmc">
<el-form-item
label="系统名称:"
prop="xtmc"
>
<el-input
v-model="formInline.xtmc"
placeholder="请输入系统名称"
@ -50,7 +63,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="系统类型:" prop="xtlx">
<el-form-item
label="系统类型:"
prop="xtlx"
>
<el-select
v-model="formInline.xtlx"
placeholder="请选择系统类型"
@ -66,7 +82,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="新增时间:" prop="time">
<el-form-item
label="新增时间:"
prop="time"
>
<el-date-picker
v-model="formInline.time"
format="yyyy-MM-dd HH:mm:ss"
@ -82,7 +101,10 @@
</el-row>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item label="单位名称:" prop="dwmc">
<el-form-item
label="单位名称:"
prop="dwmc"
>
<el-input
v-model="formInline.dwmc"
placeholder="请输入单位名称"
@ -90,7 +112,10 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="系统状态:" prop="xtzt">
<el-form-item
label="系统状态:"
prop="xtzt"
>
<el-select
v-model="formInline.xtzt"
placeholder="请选择系统状态"
@ -105,7 +130,10 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" style="text-align: right; padding-right: 35px">
<el-col
:span="8"
style="text-align: right; padding-right: 35px"
>
<el-form-item
style="
display: flex;
@ -113,8 +141,10 @@
justify-content: flex-end;
"
>
<el-button size="mini" @click="resetQuery"></el-button>
<el-button size="mini" type="primary" @click="handleQuery"
<el-button @click="resetQuery"></el-button>
<el-button
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item>
@ -125,13 +155,15 @@
<main>
<div class="search-title">
<span class="search-title-span">资产列表</span>
<el-row :gutter="10" class="mb8">
<el-row
:gutter="10"
class="mb8"
>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="Upload"
size="mini"
@click="handleImport"
>导入</el-button
>
@ -141,7 +173,6 @@
type="warning"
plain
icon="Download"
size="mini"
@click="handleExport"
>导出</el-button
>
@ -151,7 +182,6 @@
type="primary"
plain
icon="Plus"
size="mini"
@click="handleAdd"
>新增资产</el-button
>
@ -186,7 +216,10 @@
align="center"
>
<template #default="scope">
<dict-tag :options="zc_xtlx" :value="scope.row.xtlx" />
<dict-tag
:options="zc_xtlx"
:value="scope.row.xtlx"
/>
</template>
</el-table-column>
<el-table-column
@ -209,22 +242,34 @@
align="center"
>
<template #default="scope">
<span v-if="scope.row.xtzt == 1" style="color: #16b771"
<span
v-if="scope.row.xtzt == 1"
style="color: #16b771"
>已安装</span
>
<span v-if="scope.row.xtzt == 2" style="color: #f58a0c"
<span
v-if="scope.row.xtzt == 2"
style="color: #f58a0c"
>测试中</span
>
<span v-if="scope.row.xtzt == 3" style="color: #1485ef"
<span
v-if="scope.row.xtzt == 3"
style="color: #1485ef"
>使用中</span
>
<span v-if="scope.row.xtzt == 4" style="color: #29a07a"
<span
v-if="scope.row.xtzt == 4"
style="color: #29a07a"
>维护中</span
>
<span v-if="scope.row.xtzt == 5" style="color: #f50c0c"
<span
v-if="scope.row.xtzt == 5"
style="color: #f50c0c"
>关停</span
>
<span v-if="scope.row.xtzt == 6" style="color: #f50c0c"
<span
v-if="scope.row.xtzt == 6"
style="color: #f50c0c"
>备用</span
>
</template>
@ -258,7 +303,11 @@
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px;white-space: nowrap;"
style="
color: #1485ef;
margin-right: 15px;
white-space: nowrap;
"
>查看</span
>
</div>
@ -277,7 +326,11 @@
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px;white-space: nowrap;"
style="
color: #1485ef;
margin-right: 15px;
white-space: nowrap;
"
>编辑</span
>
</div>
@ -296,7 +349,11 @@
/>
<span
class="look-info"
style="color: #f50c0c; margin-right: 10px;white-space: nowrap;"
style="
color: #f50c0c;
margin-right: 10px;
white-space: nowrap;
"
>删除</span
>
</div>
@ -352,7 +409,9 @@
</el-upload>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitFileForm"
<el-button
type="primary"
@click="submitFileForm"
> </el-button
>
<el-button @click="upload.open = false"> </el-button>
@ -614,19 +673,19 @@ onUnmounted(() => {
});
</script>
<style scoped>
::v-deep(.el-input__inner) {
:deep(.el-input__inner) {
line-height: 32px;
height: 30px;
}
::v-deep(.el-select__selection) {
:deep(.el-select__selection) {
line-height: 32px;
height: 30px;
}
::v-deep(.el-form-item__content) {
:deep(.el-form-item__content) {
line-height: 32px;
height: 30px;
}
::v-deep(.el-range-editor--small.el-input__wrapper) {
:deep(.el-range-editor--small.el-input__wrapper) {
line-height: 32px !important;
height: 30px !important;
}
@ -635,22 +694,22 @@ onUnmounted(() => {
height: 30px;
} */
/* ::v-deep(.el-input__inner) {
/* :deep(.el-input__inner) {
line-height: 32px;
}
::v-deep(.el-select) {
:deep(.el-select) {
line-height: 32px;
height: 30px;
}
::v-deep(.el-select--small .el-select__wrapper .el-input__wrapper) {
:deep(.el-select--small .el-select__wrapper .el-input__wrapper) {
line-height: 32px;
height: 30px;
}
::v-deep(.el-range-editor--small) {
:deep(.el-range-editor--small) {
line-height: 32px;
height: 30px;
}
::v-deep(.el-form-item__content) {
:deep(.el-form-item__content) {
justify-content: flex-end;
line-height: 32px;
height: 30px;

@ -47,7 +47,6 @@
:inline="true"
ref="queryForm"
:model="formInline"
:size="size"
class="demo-form-inline"
label-width="100px"
>

@ -5203,7 +5203,7 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .input-selct-slot {
:deep(.input-selct-slot) {
.el-input-group__prepend {
width: 125px !important;
.el-select {
@ -5219,7 +5219,7 @@ export default {
padding-left: 10px;
}
}
::v-deep .listFormItem {
:deep(.listFormItem) {
position: relative;
margin-bottom: 0;
& > .el-form-item__content {

@ -46,7 +46,6 @@
:inline="true"
ref="queryFormRef"
:model="formInline"
:size="size"
class="demo-form-inline"
>
<el-row>
@ -58,7 +57,7 @@
<el-input
v-model="formInline.dwmc"
placeholder="请输入所属单位"
style="width: 95%;"
style="width: 95%"
/>
</el-form-item>
</el-col>
@ -70,7 +69,7 @@
<el-input
v-model="formInline.dzyxhz"
placeholder="请输入电子邮箱后缀"
style="width: 95%;"
style="width: 95%"
/>
</el-form-item>
</el-col>
@ -165,10 +164,9 @@
align="center"
>
<template #default="{ row }">
<span
:style="{ color: row.xzType == 1 ? 'blue' : '' }"
>{{ row.ssdw }}</span
>
<span :style="{ color: row.xzType == 1 ? 'blue' : '' }">{{
row.ssdw
}}</span>
</template>
</el-table-column>
<el-table-column

@ -47,7 +47,6 @@
:inline="true"
ref="queryForm"
:model="formInline"
:size="size"
class="demo-form-inline"
>
<el-row>

@ -47,7 +47,6 @@
:inline="true"
ref="queryForm"
:model="formInline"
:size="size"
class="demo-form-inline"
label-width="100px"
>

File diff suppressed because it is too large Load Diff

@ -1,319 +0,0 @@
<!-- 任务审核页面 -->
<template>
<div class="audit-pages-box" id="L-size-main">
<div class="content-info" id="L-header">
<div class="info-title">任务审核</div>
<div class="top-info">
<el-row class="top-row">
<el-col :span="8">
任务编号<span>20240101001</span>
</el-col>
<el-col :span="8">
任务名称<span>XXXXX资产核查任务</span>
</el-col>
<el-col :span="8">
任务状态<span>待审核</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
任务期限<span>2024-11-11 09:00:00</span>
</el-col>
<el-col :span="8">
任务下发时间<span>2024-11-11 09:00:00</span>
</el-col>
</el-row>
</div>
</div>
<div class="info-cut-off-rule" id="L-tab">
<div class="left-tab" :class="index == 1 ? 'active-tab':''" @click="activeTab(1)"></div>
<div :class="index == 2 ? 'active-tab':''" @click="activeTab(2)"></div>
</div>
<div class="info-bottom-box">
<el-form :inline="true" :model="formInline" size="small" class="demo-form-inline" v-if="index == 1">
<el-row>
<el-col :span="7">
<el-form-item label="核查单位:">
<el-select v-model="formInline.unit" placeholder="请选择">
<el-option label="item.label" value="item.value">
</el-option>
<!-- <el-option
v-for="dict in dict.type.bms_approval_status"
:key="dict.value"
:label="dict.label"
:value="dict.value">
</el-option> -->
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="审核状态:">
<el-select v-model="formInline.status" placeholder="请选择">
<el-option label="item.label" value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<el-button size="default" type="primary" @click="handleQuery()"></el-button>
<el-button size="default" @click="resetQuery()"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form :inline="true" :model="formInlineTwo" size="small" class="demo-form-inline" v-if="index == 2">
<el-row>
<el-col :span="7">
<el-form-item label="单位名称:">
<el-input v-model="formInlineTwo.unitName" placeholder="请输入"></el-input>
<!-- <el-select v-model="formInline.unit" placeholder="请选择"> -->
<!-- <el-option
v-for="dict in dict.type.bms_approval_status"
:key="dict.value"
:label="dict.label"
:value="dict.value">
</el-option> -->
<!-- </el-select> -->
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<el-button size="default" type="primary" @click="handleQuery()"></el-button>
<el-button size="default" @click="resetQuery()"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<section v-if="index == 1">
<el-table v-loading="loading" :data="tableData" :height="tabHeader" :max-height="tabHeader" :row-class-name="tableRowClassName">
<el-table-column type="index" width="60" label="序号" align="center"/>
<el-table-column label="资产名称" key="name" prop="name" align="center" />
<el-table-column label="资产类型" key="type" prop="type" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
</template> -->
</el-table-column>
<el-table-column label="核查单位" key="unit" prop="unit" align="center" />
<el-table-column label="审核状态" key="status" width="200px" prop="status" class-name="table-status" align="center">
<template slot-scope="scope">
<span v-if="scope.row.status === 0" style="color: #67C23A;">
审核通过
</span>
<span v-if="scope.row.status === 1" style="color: #F56C6C;">
审核不通过
</span>
<span v-if="scope.row.status === 2" style="color: #E6A23C;">
待审核
</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.status == 1" style="display: flex;align-items: center;cursor: pointer;margin-left: 5px;" @click="delInfo(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>
<section v-if="index == 2">
<el-table v-loading="loading" :data="tableDataTwo" :height="tabHeader" :max-height="tabHeader" :row-class-name="tableRowClassName">
<el-table-column type="index" width="60" label="序号" align="center"/>
<el-table-column label="单位名称" key="unitName" width="200px" prop="unitName" align="center" />
<el-table-column label="核查资产数量" key="hczcsl" prop="hczcsl" align="center" />
<el-table-column label="完成数量" key="wcsl" prop="wcsl" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
</template> -->
</el-table-column>
<el-table-column label="未完成数量" key="wwcsl" prop="wwcsl" align="center" />
<el-table-column label="未完成比例" key="wwcbl" width="200px" prop="wwcbl" align="center">
<template slot-scope="scope">
<span style="color: #192A92;">{{ scope.row.wwcbl }}</span>
</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>
</div>
</div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue"
export default {
components:{myPagination},
data() {
return {
index:1,
formInline:{
unit:"",
type:"",
status:"",
},
formInlineTwo:{
unitName:"",
},
total:0,
pagination:{
current:1,
size:10,
},
tableData:[
{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:0,
},{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:1,
},{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:2,
},
],
tableDataTwo:[
{
unitName:"太仓市XXX局",
hczcsl:"100",
wcsl:"80",
wwcsl:"20",
wwcbl:"20%"
},{
unitName:"太仓市XXX局",
hczcsl:"100",
wcsl:"80",
wwcsl:"20",
wwcbl:"20%"
},{
unitName:"太仓市XXX局",
hczcsl:"100",
wcsl:"80",
wwcsl:"20",
wwcbl:"20%"
},
],
loading:false,
tabHeader: undefined,
}
},
mounted(){
this.getList();
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods:{
//
resetQuery(){
this.pagination = {
current: 1,
size: 10,
}
if(this.index == 1) {
this.formInline = {
unit:"",
type:"",
status:"",
}
this.getList();
} else if(this.index == 2) {
this.formInlineTwo = {
unitName:"",
}
this.getListTwo();
}
},
//
handleQuery(){
this.pagination = {
current: 1,
size: 10,
}
if(this.index == 1) {
this.pagination = { ...this.pagination,...this.formInline };
this.getList();
} else if(this.index == 2) {
this.getListTwo();
}
},
//
getPagination(){
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
if(this.index == 1) {
this.getList();
} else if(this.index == 2) {
this.getListTwo();
}
},
// tab
activeTab(id){
this.index = id
if(id == 1) {
this.formInline = {
unit:"",
type:"",
status:"",
}
this.getList();
} else {
this.formInlineTwo = {
unitName:"",
}
this.getList();
}
},
getList(){},
getListTwo(){},
goAudit(){
this.$router.push({name: 'taskAuditInfo',query: {
pageType: "info",
}})
},
// 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 tab = document.getElementById('L-tab'); // ID
const pagination = document.getElementById('L-pagination'); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const tabHeight = tab.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - tabHeight - 140;
}
},
}
</script>

@ -1,386 +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" :model="formInline" size="small" class="demo-form-inline">
<el-row>
<el-col :span="8">
<el-form-item label="任务名称:">
<el-input v-model="formInline.name" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="任务编号:">
<el-input v-model="formInline.type" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="任务完成时间:">
<el-date-picker v-model="formInline.time" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="请选择">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="任务状态:">
<el-select v-model="formInline.status" placeholder="请选择">
<el-option label="item.label" value="item.value">
</el-option>
<!-- <el-option
v-for="dict in dict.type.bms_approval_status"
:key="dict.value"
:label="dict.label"
:value="dict.value">
</el-option> -->
</el-select>
</el-form-item>
</el-col>
<el-col :span="16" style="text-align: right;padding-right: 20px;">
<el-form-item>
<el-button size="default" @click="resetQuery('queryFrom')"></el-button>
<el-button size="default" type="primary" @click="handleQuery('queryFrom')"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<span class="search-title-span">任务列表</span>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="default" @click="handleExport"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="default" @click="handleAdd"></el-button>
</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="60" label="序号" align="center" />
<el-table-column label="任务编号" key="number" width="200px" prop="number" align="center" />
<el-table-column label="任务名称" key="name" prop="name" align="center" />
<el-table-column label="任务下发时间" key="type" prop="type" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
</template> -->
</el-table-column>
<el-table-column label="任务期限" key="unit" prop="unit" align="center" />
<el-table-column label="任务完成时间" key="time" prop="time" align="center" />
<el-table-column label="任务状态" key="status" width="200px" prop="status" class-name="table-status"
align="center">
<template slot-scope="scope">
<span v-if="scope.row.status === 0" style="color: #F58A0C;">
待审核
</span>
<span v-if="scope.row.status === 1" style="color: #F50C0C;">
审核驳回
</span>
<span v-if="scope.row.status === 3" style="color: #16B771;">
正常完成
</span>
<span v-if="scope.row.status === 4" style="color: #1485EF;">
超期完成
</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;">
<img src="@/assets/images/icon-ck@2x.png" alt="" style="width: 20px;margin-right: 5px;">
<span class="look-info" @click="goInfo(scope.row)"
style="color: #1485EF;cursor: pointer;">查看</span>
</div>
<div v-if="scope.row.status == 0" style="display: flex;align-items: center;margin-left: 5px;">
<img src="@/assets/images/icon-shenhe@2x.png" alt="" style="width: 15px;margin-right: 5px;">
<span class="del-info" @click="delInfo(scope.row)"
style="color: #1485EF;cursor: pointer;">审核</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="新增任务" @close="renwuclose" ref="renwuclose" class="taskDialogBox" width="30%">
<el-row>
<el-col :span="18">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
<el-form-item label="任务名称" prop="taskName">
<el-input v-model="ruleForm.taskName" placeholder="请输入单位名称"></el-input>
</el-form-item>
<el-form-item label="核查单位" prop="unit" class="select-box">
<el-col :span="24">
<el-select v-model="ruleForm.unit" placeholder="请选择活动区域">
<el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option>
</el-select>
</el-col>
<el-col class="btn-box">
<el-button type="primary" @click="addliebiao"></el-button>
</el-col>
</el-form-item>
<el-form-item label="任务期限" prop="time">
<el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.time"
style="width: 100%;"></el-date-picker>
</el-form-item>
<el-form-item class="newTask-form-item">
<el-button @click="resetForm('ruleForm')"></el-button>
<el-button type="primary" @click="submitForm('ruleForm')"></el-button>
</el-form-item>
</el-form>
</el-col>
<el-col :span="6"></el-col>
</el-row>
</my-dialog>
<my-dialog title="单位列表" @close="importClose" ref="taskDialog" class="taskDialogBox" width="80%">
<el-form :inline="true" :model="formInline" size="small" class="demo-form-inline">
<el-row>
<el-col :span="7">
<el-form-item label="任务编号:">
<el-input v-model="formInline.type" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="任务名称:">
<el-input v-model="formInline.name" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="任务状态:">
<el-select v-model="formInline.status" placeholder="请选择">
<el-option label="item.label" value="item.value">
</el-option>
<!-- <el-option
v-for="dict in dict.type.bms_approval_status"
:key="dict.value"
:label="dict.label"
:value="dict.value">
</el-option> -->
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" style="text-align: right;padding-right: 20px;">
<el-form-item class="unit-form">
<el-button size="default" @click="resetQuery('queryFrom')"></el-button>
<el-button size="default" type="primary" @click="handleQuery('queryFrom')"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<section>
<el-table v-loading="liebiaoloading" :data="liebiaotableData" :height="tabHeader" :max-height="tabHeader"
:row-class-name="tableRowClassName">
<el-table-column type="index" width="60" label="序号" align="center" />
<el-table-column label="任务编号" key="number" width="200px" prop="number" align="center" />
<el-table-column label="任务名称" key="name" prop="name" align="center" />
<el-table-column label="任务下发时间" key="type" prop="type" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
</template> -->
</el-table-column>
<el-table-column label="任务期限" key="unit" prop="unit" align="center" />
</el-table>
</section>
<my-pagination id="L-pagination" :total="liebiaototal" :page="liebiaopagination.current" :limit="liebiaopagination.size"
@pagination="getPagination" :current-page.sync="liebiaopagination.current"></my-pagination>
</my-dialog>
</div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue"
import myDialog from "@/views/components/myDialog/index.vue"
export default {
// dicts: ['jjh_project_type', 'bms_approval_status', "project_middle_type", "project_small_type", "project_categories"],
components: { myPagination, myDialog },
data() {
return {
formInline: {
name: "",
type: "",
time: [],
number: "",
status: "",
},
total: 0,
pagination: {
current: 1,
size: 10,
},
liebiaotableData:[],
liebiaopagination: {
current: 1,
size: 10,
},
liebiaototal:0,
liebiaoloading:false,
tableData: [
{
number: 20230001,
name: "XXX任务",
type: "2023-07-30 16:30:21",
unit: "2023-07-30",
time: "2023-07-30 16:30:21",
status: 0,
}, {
number: 20230001,
name: "XXX任务",
type: "2023-07-30 16:30:21",
unit: "2023-07-30",
time: "2023-07-30 16:30:21",
status: 1,
}, {
number: 20230001,
name: "XXX任务",
type: "2023-07-30 16:30:21",
unit: "2023-07-30",
time: "2023-07-30 16:30:21",
status: 3,
}, {
number: 20230001,
name: "XXX任务",
type: "2023-07-30 16:30:21",
unit: "2023-07-30",
time: "2023-07-30 16:30:21",
status: 4,
},
],
loading: false,
tabHeader: undefined,
ruleForm: {
taskName: "",
unit: "",
time: "",
},
rules: {
name: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
],
region: [
{ required: true, message: '请选择活动区域', trigger: 'change' }
],
date1: [
{ type: 'date', required: true, message: '请选择日期', trigger: 'change' }
],
}
}
},
mounted() {
this.getInfo();
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods: {
//
getInfo() {
// this.loading = true;
// jProject(this.pagination).then(res=>{
// this.loading = false;
// this.total = res.data.total;
// this.tableData = res.data.records;
// })
},
//
resetQuery() {
this.formInline = {
name: "",
type: "",
time: [],
number: "",
status: "",
}
this.pagination = {
current: 1,
size: 10,
}
this.getList();
},
//
handleQuery() {
this.pagination = {
current: 1,
size: 10
}
if (this.formInline.time.length > 0) {
this.formInline.startTime = this.formInline.time[0]
this.formInline.endTime = this.formInline.time[1]
}
this.pagination = { ...this.pagination, ...this.formInline };
this.getList();
},
//
getPagination(pages) {
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
this.getList();
},
//
handleImport() { },
//
handleExport() { },
//
handleAdd() {
this.$refs.taskDialog.open()
},
//
addliebiao(){
this.$refs.renwuclose.open()
},
//
renwuclose(){},
//
importClose() { },
//
goInfo() {
this.$router.push({
name: 'TaskInfo', query: {
pageType: "info",
}
})
},
//
edit() {
},
//
delInfo() {
this.$router.push({
name: 'taskAudit', query: {
pageType: "info",
}
})
},
// 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 - 110;
}
},
}
</script>

@ -1,469 +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" :model="formInline" size="small" class="demo-form-inline">
<el-row>
<el-col :span="7">
<el-form-item label="任务名称:">
<el-input v-model="formInline.taskName" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="任务状态:">
<el-select v-model="formInline.taskStatus" placeholder="请选择">
<el-option label="已关闭" value="0" />
<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="5">
<el-form-item label="任务完成时间:">
<el-date-picker v-model="formInline.time" format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="请选择">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item>
</el-form-item>
</el-col>
<el-col :span="16" style="text-align: right;padding-right: 20px;">
<el-form-item>
<el-button size="small" @click="resetQuery"></el-button>
<el-button size="small" type="primary" @click="handleQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<span class="search-title-span">任务列表</span>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" :icon="Plus" size="small" @click="handleAdd"></el-button>
</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="60" label="序号" align="center" />
<el-table-column label="任务名称" key="taskName" prop="taskName" align="center" />
<el-table-column label="任务下发时间" key="taskTime" prop="taskTime" align="center" />
<el-table-column label="任务期限" key="taskDeadline" prop="taskDeadline" align="center" />
<el-table-column label="任务完成时间" key="taskFinishTime" prop="taskFinishTime" align="center" />
<el-table-column label="任务状态" key="taskStatus" width="200px" prop="taskStatus" class-name="table-status"
align="center">
<template #default="{ row }">
<span v-if="row.taskStatus == 0" style="color: #F56C6C;"></span>
<span v-if="row.taskStatus == 1" style="color: #E6A23C;"></span>
<span v-if="row.taskStatus == 2" style="color: #67C23A;"></span>
<span v-if="row.taskStatus == 3" style="color:#67C23A;"></span>
<span v-if="row.taskStatus == 4" style="color: #F56C6C;"></span>
<span v-if="row.taskStatus == 5" style="color: #F56C6C;"></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)">
<el-icon class="mr-1"><View /></el-icon>
<span class="look-info" style="color: #1485EF;">查看</span>
</div>
<div style="display: flex;align-items: center;cursor: pointer;margin-left: 10px;"
@click="delInfo(row)" v-if="row.taskStatus == 1 && row.taskStatus != 0">
<el-icon class="mr-1"><Edit /></el-icon>
<span class="del-info" style="color: #1485EF;">审核</span>
</div>
<div style="display: flex;align-items: center;cursor: pointer;margin-left: 10px;"
@click="guanbijiekou(row)" v-if="row.taskStatus == 1 && row.taskStatus != 0">
<el-icon class="mr-1"><Delete /></el-icon>
<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="新增任务" @close="importClose" ref="taskDialog" class="taskDialogBox" width="43%">
<el-row>
<el-col :span="21">
<el-form :model="ruleForm" :rules="rules" ref="ruleFormRef" label-width="120px">
<el-form-item label="任务名称" prop="taskName">
<el-input v-model="ruleForm.taskName" placeholder="请输入任务名称"></el-input>
</el-form-item>
<el-form-item label="核查资产类型" prop="type">
<el-checkbox-group v-model="ruleForm.type" @change="checkboxChange">
<el-checkbox label="0">web资产</el-checkbox>
<el-checkbox label="1">小程序资产</el-checkbox>
<el-checkbox label="2">公众号资产</el-checkbox>
<el-checkbox label="3">电子邮件资产</el-checkbox>
<el-checkbox label="4">移动应用程序资产</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="核查单位" prop="dwmc" class="select-box">
<el-col>
<el-select v-model="ruleForm.dwmc" placeholder="请选择核查单位" multiple collapse-tags @remove-tag="isclear">
</el-select>
</el-col>
<el-col class="btn-box">
<el-button type="primary" @click="addliebiao"><el-icon><Expand /></el-icon></el-button>
</el-col>
</el-form-item>
<el-form-item label="任务期限" prop="taskDeadline">
<el-date-picker type="datetime" placeholder="选择日期" v-model="ruleForm.taskDeadline" style="width: 100%;"
value-format="yyyy-MM-dd HH:mm:ss" default-time="23:59:59"
:disabled-date="disabledDate"></el-date-picker>
</el-form-item>
<el-form-item class="newTask-form-item">
<el-button @click="resetForm"></el-button>
<el-button type="primary" @click="submitForm" :loading="btnloading">发布</el-button>
</el-form-item>
</el-form>
</el-col>
</el-row>
</my-dialog>
<div class="newTask-liebiao">
<my-dialog title="单位列表" ref="liebiaoDialog" @close="liebiaoClose" class="taskDialogBox" width="80%">
<danweiList ref="danweiList" @adddanweilist="adddanweilist" @liebiaoClose="liebiaoClose"></danweiList>
</my-dialog>
</div>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, onUnmounted, nextTick } from 'vue'
import { useRouter } from 'vue-router'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Plus, View, Edit, Delete, Expand } from '@element-plus/icons-vue'
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"
const router = useRouter()
const taskDialog = ref(null)
const liebiaoDialog = ref(null)
const danweiList = ref(null)
const ruleFormRef = ref(null)
const loading = ref(false)
const btnloading = ref(false)
const total = ref(0)
const tabHeader = ref(undefined)
const tabclicklist = ref([])
const formInline = reactive({
name: "",
type: "",
time: [],
number: "",
status: "",
})
const pagination = reactive({
current: 1,
size: 10,
})
const tableData = ref([])
const ruleForm = reactive({
taskName: "",
dwmc: [],
taskDeadline: "",
type: []
})
const rules = {
taskName: [{ required: true, message: '请输入', trigger: 'change' }],
dwmc: [{ required: true, message: '请选择', trigger: 'change' }],
taskDeadline: [{ required: true, message: '请选择日期', trigger: 'change' }],
type: [{ required: true, message: '请选择', trigger: 'change' }]
}
const chanckList = [
{ lable: "0", conent: "web资产" },
{ lable: "1", conent: "小程序资产" },
{ lable: "2", conent: "公众号资产" },
{ lable: "3", conent: "电子邮件资产" },
{ lable: "4", conent: "移动应用程序资产" },
]
// Methods
const isclear = (value) => {
tabclicklist.value = tabclicklist.value.filter(user => user.nickName != value)
}
const disabledDate = (time) => {
return time.getTime() < Date.now() - 8.64e7
}
const checkboxChange = () => {
ruleForm.dwmc = []
tabclicklist.value = []
nextTick(() => {
ruleFormRef.value?.clearValidate()
})
}
const resetForm = () => {
Object.assign(ruleForm, {
dwmc: [],
taskName: "",
taskDeadline: "",
type: []
})
taskDialog.value?.close()
tabclicklist.value = []
btnloading.value = false
}
const fonsisis = (data) => {
const specificTime = new Date(data)
const currentTime = new Date()
return currentTime <= specificTime
}
const submitForm = async () => {
if (!fonsisis(ruleForm.taskDeadline)) {
ElMessage.error('选择时间不能小于当前时间')
return
}
if (!ruleFormRef.value) return
await ruleFormRef.value.validate(async (valid) => {
if (valid) {
btnloading.value = true
try {
const submitData = {
...ruleForm,
dwmc: ruleForm.dwmc.join(","),
type: ruleForm.type.join(",")
}
await addassetTaskadd(submitData)
resetForm()
await getInfo()
ElMessage.success("新增成功")
} catch (error) {
console.error(error)
} finally {
btnloading.value = false
}
}
})
}
const adddanweilist = (val) => {
if (val) {
ruleForm.dwmc = val.map(element => element.nickName)
} else {
ruleForm.dwmc = []
}
tabclicklist.value = val
}
const getInfo = async () => {
loading.value = true
try {
const res = await getassetTask(pagination)
total.value = res.data.total
tableData.value = res.data.records
} catch (error) {
console.error(error)
} finally {
loading.value = false
}
}
const resetQuery = () => {
Object.assign(formInline, {
name: "",
type: "",
time: [],
number: "",
status: "",
})
Object.assign(pagination, {
current: 1,
size: 10,
})
localStorage.removeItem("ismypagination")
getInfo()
}
const addliebiao = () => {
if (ruleForm.type.length > 0) {
liebiaoDialog.value?.open()
nextTick(() => {
danweiList.value?.getType(ruleForm.type)
if (tabclicklist.value) {
setTimeout(() => {
danweiList.value?.dakai(tabclicklist.value)
}, 100)
}
})
} else {
ElMessage.warning('请先选择核查资产类型')
}
}
const liebiaoClose = () => {
if (danweiList.value) {
danweiList.value.queryParams = {
current: 1,
size: 10,
userName: undefined,
nickName: undefined,
dwlx: undefined,
}
}
liebiaoDialog.value?.close()
}
const handleQuery = () => {
Object.assign(pagination, {
current: 1,
size: 10
})
if (formInline.time.length > 0) {
formInline.begainTime = formInline.time[0]
formInline.endTime = formInline.time[1]
}
Object.assign(pagination, formInline)
formInline.isfanhui = false
localStorage.setItem("ismypagination", JSON.stringify(formInline))
getInfo()
}
const getPagination = (pages) => {
pagination.current = pages.page
pagination.size = pages.limit
getInfo()
}
const handleAdd = () => {
taskDialog.value?.open()
nextTick(() => {
ruleFormRef.value?.clearValidate()
})
}
const importClose = () => {
resetForm()
}
const goInfo = (row) => {
getassetTaskid(row.id)
router.push({
name: 'TaskInfo',
query: {
pageType: "look",
id: row.id
}
})
}
const delInfo = (row) => {
router.push({
name: 'TaskInfo',
query: {
pageType: "info",
id: row.id
}
})
}
const guanbijiekou = (row) => {
ElMessageBox.confirm('此操作将关闭任务, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(async () => {
try {
const res = await assetTaskclose({ taskId: row.id, taskName: row.taskName })
if (res.code == 200) {
ElMessage.success('关闭成功!')
await getInfo()
}
} catch (error) {
console.error(error)
}
}).catch(() => {
ElMessage.info('已取消关闭')
})
}
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 pagination = document.getElementById('L-pagination')
if (element && header && pagination) {
const elementHeight = element.offsetHeight
const headerHeight = header.offsetHeight
const paginationtHeight = pagination.offsetHeight
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110
}
}
// Lifecycle hooks
onMounted(() => {
if (localStorage.getItem('ismypagination')) {
const storedPagination = JSON.parse(localStorage.getItem('ismypagination'))
if (storedPagination.isfanhui) {
Object.assign(formInline, storedPagination)
handleQuery()
} else {
localStorage.removeItem("ismypagination")
}
}
localStorage.removeItem("ismypaginationTow")
localStorage.removeItem("activeName")
getInfo()
cancalDebounce()
window.addEventListener('resize', cancalDebounce)
})
onUnmounted(() => {
window.removeEventListener('resize', cancalDebounce)
})
</script>
<style lang="scss" scoped>
.mr-1 {
margin-right: 4px;
}
.el-icon-s-unfold {
font-size: 16px;
}
.el-icon-delete {
color: #409EFF;
font-size: 16px;
font-weight: 600;
margin-right: 5px;
}
</style>

File diff suppressed because it is too large Load Diff

@ -359,9 +359,6 @@ export default {
font-size: 16px;
}
// ::v-deep .el-dialog__body{
// padding-left: 80px;
// }
.el-icon-delete {
color: #409EFF;
font-size: 16px;

@ -5203,7 +5203,7 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .input-selct-slot {
:deep(.input-selct-slot) {
.el-input-group__prepend {
width: 125px !important;
.el-select {
@ -5219,7 +5219,7 @@ export default {
padding-left: 10px;
}
}
::v-deep .listFormItem {
:deep(.listFormItem) {
position: relative;
margin-bottom: 0;
& > .el-form-item__content {

@ -5203,7 +5203,7 @@ export default {
};
</script>
<style lang="scss" scoped>
::v-deep .input-selct-slot {
:deep(.input-selct-slot) {
.el-input-group__prepend {
width: 125px !important;
.el-select {
@ -5219,7 +5219,7 @@ export default {
padding-left: 10px;
}
}
::v-deep .listFormItem {
:deep(.listFormItem) {
position: relative;
margin-bottom: 0;
& > .el-form-item__content {

@ -8,13 +8,27 @@
@close="resetCancel"
:width="width"
append-to-body
align-center
>
<slot></slot>
<div v-if="footer" slot="footer" class="dialog-footer">
<div
v-if="footer"
slot="footer"
class="dialog-footer"
>
<el-form size="small">
<el-form-item class="dialog-from-item">
<el-button size="default" @click="resetCancel">{{ closeText }}</el-button>
<el-button type="primary" size="default" @click="resetConfirm"></el-button>
<el-button
size="default"
@click="resetCancel"
>{{ closeText }}</el-button
>
<el-button
type="primary"
size="default"
@click="resetConfirm"
>确定</el-button
>
</el-form-item>
</el-form>
</div>
@ -22,73 +36,72 @@
</template>
<script setup>
import { ref } from 'vue'
import { ref } from "vue";
// Props
const props = defineProps({
title: {
type: String,
default: ''
default: "",
},
myclass: {
type: Boolean,
default: false
default: false,
},
closeText: {
type: String,
default: '取消'
default: "取消",
},
width: {
type: String,
default: '50%'
default: "50%",
},
footer: {
type: Boolean,
default: false
}
})
default: false,
},
});
// Emits
const emit = defineEmits(['close', 'confirm'])
const emit = defineEmits(["close", "confirm"]);
// Dialog visible state ()
const dialogFormVisible = ref(false)
const dialogFormVisible = ref(false);
// Methods
const open = () => {
dialogFormVisible.value = true
}
dialogFormVisible.value = true;
};
const close = () => {
dialogFormVisible.value = false
}
dialogFormVisible.value = false;
};
//
const resetCancel = () => {
emit('close')
}
emit("close");
};
//
const resetConfirm = () => {
emit('confirm')
}
emit("confirm");
};
// 使
defineExpose({ open, close })
defineExpose({ open, close });
</script>
<style lang="scss" scoped>
::v-deep .el-dialog {
:deep(.el-dialog) {
border-radius: 10px;
.el-dialog__header {
border-bottom: 1px solid #DDDDDD;
border-bottom: 1px solid #dddddd;
padding: 10px 20px;
background: #F2F4F6;
background: #f2f4f6;
border-top-left-radius: 10px; /* 上左角圆角 */
border-top-right-radius: 10px; /* 上右角圆角 */
span {
// font-family: PingFang-SC, PingFang-SC;
font-weight: 800;
@ -104,7 +117,7 @@ defineExpose({ open, close })
width: 5px;
border-radius: 5px;
height: 100%;
background-color: #1485EF;
background-color: #1485ef;
}
}
}
@ -114,7 +127,7 @@ defineExpose({ open, close })
}
.el-dialog__footer {
border-top: 1px solid #DDDDDD;
border-top: 1px solid #dddddd;
.dialog-footer {
.el-form {
@ -132,10 +145,10 @@ defineExpose({ open, close })
}
}
::v-deep .custom-my-class {
:deep(.custom-my-class) {
margin-top: 15vh !important;
}
::v-deep .el-dialog__body{
:deep(.el-dialog__body) {
padding-top: 10px !important;
}
</style>

@ -1,3 +1,7 @@
<template>
<div></div>
</template>
<script setup>
import { ref, watch } from "vue";
import { useRouter } from "vue-router";

@ -0,0 +1,697 @@
<template>
<div class="L-task-info">
<div
class="info-left info-left-two"
id="L-size-main"
>
<div
class="content-info content-info-two"
id="L-header"
>
<div class="info-title">任务详情</div>
<el-button
type="primary"
@click="sendBack"
class="fanhuipiaofu"
>返回</el-button
>
<div class="teshu-top-info">
<div class="top-info">
<el-row class="top-row">
<el-col :span="8"
>任务下发时间<span>{{ titleInfoObj.taskTime }}</span></el-col
>
<el-col :span="8"
>任务名称<span>{{ titleInfoObj.taskName }}</span></el-col
>
<el-col :span="8"
>任务状态<span>{{
taskstatus(titleInfoObj.taskStatus)
}}</span></el-col
>
</el-row>
<el-row>
<el-col :span="8"
>任务期限<span>{{ titleInfoObj.taskDeadline }}</span></el-col
>
<el-col :span="16"
>核查资产类型<span>{{ listTow.join(",") }}</span></el-col
>
</el-row>
</div>
</div>
</div>
<main class="renwuxiangqing">
<div
class="info-cut-off-rule-my"
id="L-tab"
>
<div class="info-title">资产信息</div>
</div>
<div class="info-bottom-box">
<el-form
:inline="true"
:model="formInline"
size="default"
class="demo-form-inline"
v-if="index === 1"
>
<el-row>
<el-col :span="7">
<el-form-item
label="系统名称:"
style="width: 95%"
>
<el-input
v-model="formInline.xtmc"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item
label="审核状态:"
style="width: 95%"
>
<el-select
v-model="formInline.status"
placeholder="请选择"
>
<el-option
label="未核查"
value="0"
></el-option>
<el-option
label="已核查"
value="1"
></el-option>
<el-option
label="审核通过"
value="3"
></el-option>
<el-option
label="审核不通过"
value="4"
></el-option>
<el-option
label="已关停"
value="5"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item>
<el-button
type="primary"
@click="handleQuery"
>查询</el-button
>
<el-button @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form
:inline="true"
:model="formInlineTwo"
size="default"
class="demo-form-inline"
v-if="index === 2"
>
<el-row>
<el-col :span="7">
<el-form-item label="单位名称:">
<el-input
v-model="formInlineTwo.unitName"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-button
type="primary"
@click="handleQuery"
>查询</el-button
>
<el-button @click="resetQuery"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<section v-if="index === 1">
<el-tabs
v-model="activeName"
@tab-click="handleClick"
>
<el-tab-pane
v-for="item in chanckListTow"
:key="item.lable"
:label="item.conent"
:name="item.lable"
:xtmcName="item.xtmcName"
></el-tab-pane>
</el-tabs>
<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="xtmcName"
prop="xtmc"
align="center"
/>
<el-table-column
label="核查单位"
prop="zcdwmc"
align="center"
/>
<el-table-column
label="单位核查时间"
prop="updateTime"
align="center"
/>
<el-table-column
label="审核状态"
width="200px"
prop="status"
class-name="table-status"
align="center"
>
<template #default="scope">
<span
v-if="scope.row.status == 0"
style="color: #e6a23c"
>未核查</span
>
<span
v-if="scope.row.status == 1"
style="color: #67c23a"
>已核查</span
>
<span
v-if="scope.row.status == 3"
style="color: #67c23a"
>审核通过</span
>
<span
v-if="scope.row.status == 4"
style="color: #f56c6c"
>审核不通过</span
>
<span
v-if="scope.row.status == 5"
style="color: #f56c6c"
>已关停</span
>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template #default="scope">
<div
style="
display: flex;
align-items: center;
justify-content: center;
"
>
<div
style="
display: flex;
align-items: center;
cursor: pointer;
"
@click="goInfo(1, scope.row)"
v-if="
(scope.row.status != 4 && scope.row.status != 0) ||
route.query.pageType == 'look' ||
route.meta.pageType == 'look'
"
>
<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="
(route.query.pageType == 'info' ||
route.meta.pageType == 'info') &&
scope.row.status != 3 &&
scope.row.status != 5 &&
scope.row.status != 1
"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="goInfo(2, 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
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 5px;
"
@click="goInfo(3, scope.row)"
v-show="scope.row.btgyy"
>
<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>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="pagination.current"
:limit="pagination.size"
@pagination="getPagination"
v-model:current-page="pagination.current"
></my-pagination>
</div>
</main>
</div>
<div
class="info-right"
v-if="route.query.pageType == 'look' || route.meta.pageType == 'look'"
>
<div class="info-title">任务流程节点</div>
<div class="timeline">
<div
class="timeline-items"
v-for="(item, index) in timeLineData"
:key="index"
>
<div class="left-box">
<img
class="main-img"
:src="returnidimg(item.assetName)"
alt=""
/>
<img
class="icon-jt"
v-if="index + 1 != timeLineData.length"
src="@/assets/images/icon-jt@2x.png"
alt=""
/>
</div>
<div class="right-box">
<span class="span-title">{{ item.assetName }}:</span>
<span class="span-time">{{ item.xfTime }}</span>
</div>
</div>
</div>
</div>
<my-dialog
title="查看原因"
ref="liebiaoDialog"
@close="importClose"
class="taskDialogBox"
width="40%"
>
<el-descriptions>
<el-descriptions-item label="不通过原因">
{{ chakanyuanyin }}
</el-descriptions-item>
</el-descriptions>
</my-dialog>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, onBeforeUnmount, nextTick } from "vue";
import { useRoute, useRouter } from "vue-router";
import myPagination from "@/views/components/Pagination/index.vue";
import myDialog from "@/views/components/myDialog/index.vue";
import {
getassetTaskid,
geassetTaskcHc,
assetLcpage,
} from "@/api/renwuApi/index.js";
const route = useRoute();
const router = useRouter();
const index = ref(1);
const formInline = reactive({});
const formInlineTwo = reactive({ unitName: "" });
const total = ref(0);
const pagination = ref({
current: 1,
size: 10,
});
const tableData = ref([]);
const loading = ref(false);
const tabHeader = ref(undefined);
const timeLineData = ref([]);
const titleInfoObj = reactive({});
const chakanyuanyin = ref("");
const activeName = ref("0");
const xtmcName = ref("系统名称");
const chanckList = [
{ lable: "0", conent: "web资产", xtmcName: "系统名称" },
{ lable: "1", conent: "小程序资产", xtmcName: "小程序名称" },
{ lable: "2", conent: "公众号资产", xtmcName: "公众号名称" },
{ lable: "3", conent: "电子邮件资产", xtmcName: "电子邮箱后缀" },
{ lable: "4", conent: "移动应用程序资产", xtmcName: "移动应用程序名称" },
];
const chanckListTow = ref([]);
const listTow = ref([]);
function sendBack() {
if (localStorage.getItem("ismypagination")) {
let formInline = JSON.parse(localStorage.getItem("ismypagination"));
formInline.isfanhui = true;
localStorage.setItem("ismypagination", JSON.stringify(formInline));
}
router.go(-1);
}
function handleClick(tab) {
activeName.value = tab.props.name;
// activeName xtmcName
const current = chanckListTow.value.find(item => item.lable === activeName.value);
xtmcName.value = current ? current.xtmcName : "系统名称";
localStorage.setItem("activeName", activeName.value);
handleQuery();
}
const returnidimg = (iswenzi) => {
const listsna = [
{
name: "下发",
imgdata: new URL("@/assets/images/rwxf.png", import.meta.url).href,
},
{
name: "提交",
imgdata: new URL("@/assets/images/wctj.png", import.meta.url).href,
},
{
name: "不通过",
imgdata: new URL("@/assets/images/shbh.png", import.meta.url).href,
},
{
name: "审核通过",
imgdata: new URL("@/assets/images/shtg.png", import.meta.url).href,
},
{
name: "驳回",
imgdata: new URL("@/assets/images/shbh.png", import.meta.url).href,
},
];
const item = listsna.find((item) => iswenzi.includes(item.name));
return item
? item.imgdata
: new URL("@/assets/images/wctj.png", import.meta.url).href;
};
function assetLcpageList() {
let obj = {
taskId: route.query.id || route.meta.id,
};
assetLcpage(obj).then((res) => {
timeLineData.value = res.data;
});
}
function importClose() {}
const liebiaoDialog = ref();
function goInfo(type, row) {
if (type == 1) {
router.push({
name: "mytaskAuditInfo",
query: {
pageType: "look",
taskId: row.taskId,
assetId: row.id,
type: activeName.value,
},
});
}
if (type == 2) {
router.push({
name: "WebZC-info",
query: {
pageType: "change",
taskId: row.taskId,
assetId: row.id,
type: activeName.value,
},
});
}
if (type == 3) {
chakanyuanyin.value = row.btgyy;
liebiaoDialog.value.open();
}
}
function taskstatus(id) {
if (id !== undefined && id !== null) {
let obj = {
0: "已关闭",
1: "进行中",
2: "正常完成",
3: "超期完成",
4: "正常完成",
5: "审核驳回",
};
return obj[id];
} else {
return "-";
}
}
//
function titleInfoObjtype(type = "0,1") {
let list = type.split(",");
listTow.value = [];
chanckListTow.value = [];
chanckList.forEach((res) => {
list.forEach((element) => {
if (element == res.lable) {
listTow.value.push(res.conent);
chanckListTow.value.push(res);
}
});
});
activeName.value = chanckListTow.value[0]?.lable || "0";
if (localStorage.getItem("activeName")) {
activeName.value = localStorage.getItem("activeName");
localStorage.setItem("activeName", activeName.value);
}
let listname = chanckListTow.value.filter(
(item) => item.lable == activeName.value
);
if (listname.length) {
xtmcName.value = listname[0].xtmcName;
}
console.log('titleInfoObjtype:', {
activeName: activeName.value,
xtmcName: xtmcName.value,
chanckListTow: chanckListTow.value,
listname,
});
handleQuery();
}
function titleInfo() {
getassetTaskid(route.query.id || route.meta.id).then((res) => {
if (res.code == 200) {
Object.assign(titleInfoObj, res.data);
titleInfoObjtype(titleInfoObj.type);
}
});
}
//
function resetQuery() {
activeName.value = chanckListTow.value[0]?.lable || "0";
xtmcName.value = "系统名称";
pagination.value = {
current: 1,
size: 10,
type: activeName.value,
};
if (index.value === 1) {
Object.assign(formInline, { type: activeName.value });
localStorage.removeItem("ismypaginationTow");
getList();
} else if (index.value === 2) {
Object.assign(formInlineTwo, { unitName: "" });
getListTwo();
}
}
//
function handleQuery() {
pagination.value = {
current: 1,
size: 10,
type: activeName.value,
};
if (index.value === 1) {
Object.assign(pagination.value, formInline);
formInline.isfanhuiTow = false;
localStorage.setItem("ismypaginationTow", JSON.stringify(formInline));
getList();
} else if (index.value === 2) {
getListTwo();
}
}
//
function getPagination(pages) {
pagination.value.current = pages.page;
pagination.value.size = pages.limit;
if (index.value === 1) {
getList();
} else if (index.value === 2) {
getListTwo();
}
}
// tab
function activeTab(id) {
index.value = id;
if (id === 1) {
Object.assign(formInline, { unit: "", type: "", status: "" });
getList();
} else {
Object.assign(formInlineTwo, { unitName: "" });
getList();
}
}
function getList() {
loading.value = true;
pagination.value.taskId = route.query.id || route.meta.id;
pagination.value.type = activeName.value;
// store
// if (store.state.user.roles.includes('unit')) {
// pagination.value.dwmc = store.state.user.useer.nickName
// }
geassetTaskcHc(pagination.value).then((res) => {
tableData.value = res.data.records;
loading.value = false;
total.value = res.data.total;
});
}
function getListTwo() {}
function tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) {
return "evenNumber-row";
}
return "";
}
//
function cancalDebounce() {
nextTick(() => {
const element = document.getElementById("L-size-main");
const header = document.getElementById("L-header");
const tab = document.getElementById("L-tab");
const paginationEl = document.getElementById("L-pagination");
if (!element || !header || !tab || !paginationEl) return;
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = paginationEl.offsetHeight;
const tabHeight = tab.offsetHeight;
tabHeader.value =
elementHeight - headerHeight - paginationtHeight - tabHeight - 160;
});
}
onMounted(() => {
cancalDebounce();
window.addEventListener("resize", cancalDebounce);
titleInfo();
assetLcpageList();
if (localStorage.getItem("ismypaginationTow")) {
const temp = JSON.parse(localStorage.getItem("ismypaginationTow"));
if (temp.isfanhuiTow) {
Object.assign(formInline, temp);
titleInfo();
} else {
localStorage.removeItem("ismypaginationTow");
}
}
});
onBeforeUnmount(() => {
window.removeEventListener("resize", cancalDebounce);
});
</script>
<style lang="scss" scoped>
:deep(.el-timeline) {
padding-left: 0;
font-size: 12px;
}
:deep(.el-form-item__label) {
padding-right: 3px;
}
:deep(.el-dialog) {
margin-top: 20vh !important;
}
.content-info {
position: relative;
}
.fanhuipiaofu {
position: absolute;
right: 20px;
top: 10px;
}
</style>

@ -269,7 +269,7 @@
</template>
<script setup>
import { ref, reactive, onMounted, onUnmounted } from "vue";
import { ref, reactive, onMounted, onUnmounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import myPagination from "@/views/components/Pagination/index.vue";
// import myDialog from "@/views/components/myDialog/index.vue"
@ -293,6 +293,8 @@ const formInline = ref({
number: "",
status: "",
});
const { proxy } = getCurrentInstance();
const pagination = ref({
current: 1,
size: 10,
@ -381,8 +383,9 @@ function resetQuery() {
//
function goInfo(row) {
getassetTaskid(row.id);
proxy.setActiveMenu("/myTask2");
router.push({
name: "mytaskInfo",
name: "Mytask-info",
query: {
pageType: "look",
id: row.id,
@ -394,8 +397,9 @@ function goInfo(row) {
//
function delInfo(row) {
console.log(row);
proxy.setActiveMenu("/myTask2");
router.push({
name: "mytaskInfo",
name: "Mytask-info",
query: {
pageType: "info",
id: row.id,

@ -1,26 +0,0 @@
<template>
<div class="L-task-info">
<el-button type="primary" @click="sendBack" class="fanhuipiaofu" size="default">返回</el-button>
</div>
</template>
<script setup>
import { useRoute, useRouter } from 'vue-router';
const route = useRoute();
const router = useRouter();
console.log('当前路由参数:', route.query);
const sendBack = () => {
router.go(-1);
};
</script>
<style lang="scss" scoped>
.fanhuipiaofu {
position: absolute;
right: 20px;
top: 10px;
}
</style>

@ -0,0 +1,80 @@
<template>
<div>
<my-dialog title="提示" ref="liebiaoDialog" @close="importClose" class="taskDialogBox" width="40%">
<el-row>
<el-col :span="21">
<el-form :model="dialogruleForm" :rules="dialogruleFormrules" ref="eldialogruleForm" label-width="100px">
<el-form-item label="关停原因:" prop="bfyy">
<el-input v-model="dialogruleForm.bfyy" placeholder="请输入关停原因"></el-input>
</el-form-item>
<el-form-item class="newTask-form-item">
<el-button @click="resetForm('eldialogruleForm')"></el-button>
<el-button type="primary" @click="submitForm('eldialogruleForm')"></el-button>
</el-form-item>
</el-form>
</el-col>
<el-col :span="6"></el-col>
</el-row>
</my-dialog>
</div>
</template>
<script>
import myDialog from "@/views/components/myDialog/index.vue"
export default {
components:{
myDialog
},
name: 'baofei',
data () {
return {
dialogruleForm:{
bfyy:""
},
dialogruleFormrules:{
bfyy: [
{ required: true, message: '请输入', trigger: 'blur' },
],
},
}
},
created () { },
mounted () { },
props:['ruleForm', 'assetTaskzc'],
methods: {
importClose(){},
resetForm() {
this.dialogruleForm = {
bfyy:""
}
this.$refs.liebiaoDialog.close()
},
open(){
this.$refs.liebiaoDialog.open()
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.ruleForm.isbf = 2
this.ruleForm.bfyy = this.dialogruleForm.bfyy
this.$emit("assetTaskzc",this.ruleForm)
} else {
console.log('error submit!!');
return false;
}
});
},
},
computed: {}
}
</script>
<style scoped lang='scss'>
</style>

@ -0,0 +1,94 @@
<template>
<div>
<my-dialog title="提示" ref="liebiaoDialog" @close="importClose" class="taskDialogBox" width="40%">
<el-row>
<el-col :span="21">
<el-form :model="dialogruleForm" :rules="dialogruleFormrules" ref="dialogruleForm" label-width="100px">
<el-form-item label="不通过原因:" prop="btgyy">
<el-input v-model="dialogruleForm.btgyy" placeholder="请输入不通过原因"></el-input>
</el-form-item>
<el-form-item class="newTask-form-item">
<el-button @click="resetForm('dialogruleForm')"></el-button>
<el-button type="primary" @click="submitForm('dialogruleForm')"></el-button>
</el-form-item>
</el-form>
</el-col>
<el-col :span="6"></el-col>
</el-row>
</my-dialog>
</div>
</template>
<script>
import myDialog from "@/views/components/myDialog/index.vue"
import { assetTasksh } from "@/api/renwuApi/index.js"
export default {
components:{
myDialog
},
name: 'baofei',
data () {
return {
dialogruleForm:{
btgyy:""
},
dialogruleFormrules:{
btgyy: [
{ required: true, message: '请输入', trigger: 'blur' },
],
},
}
},
created () { },
mounted () { },
props:['chuandemingcheng', 'assetTaskzc',"dataname","ruleForm"],
methods: {
importClose(){},
resetForm() {
this.dialogruleForm = {
btgyy:""
}
this.$refs.liebiaoDialog.close()
},
open(){
this.$refs.liebiaoDialog.open()
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let tijioaobj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
xtmc:this.chuandemingcheng,
btgyy:this.dialogruleForm.btgyy,
dwmc:this.$route.query.zcdwmc,
status: 4,
type:this.$route.query.type
}
tijioaobj[this.dataname] = this.ruleForm
assetTasksh(tijioaobj).then(res=>{
if(res.code == 200){
this.$modal.msgSuccess("审核成功");
this.$router.go(-1);
}
})
} else {
console.log('error submit!!');
return false;
}
});
},
},
computed: {}
}
</script>
<style scoped lang='scss'>
</style>

@ -0,0 +1,691 @@
<!-- 小程序表单 -->
<template>
<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
: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="所属单位" prop="ssdw">
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入所属单位"></el-input> -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
disabled
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="小程序名称" prop="xcxmc">
<el-input
v-model="ruleForm.xcxmc"
placeholder="请输入小程序名称"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="APPID" prop="appId">
<el-input
v-model="ruleForm.appId"
style="width: 100%"
placeholder="请输入APPID"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="认证主体" prop="rzzt">
<el-input
v-model="ruleForm.rzzt"
style="width: 100%"
placeholder="请输入认证主体"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
class="daoqitixingren"
prop="tyshxydm"
:rules="[
{
required: true,
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
{
required: true,
message: '统一社会信用代码不能为空',
trigger: 'change',
},
]"
label="统一社会信用代码"
required
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="小程序状态" prop="state">
<el-select
v-model="ruleForm.state"
placeholder="请选择小程序状态"
>
<el-option
v-for="dict in dict.type.gzh_state"
: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="账号原始ID" prop="ysId">
<el-input
v-model="ruleForm.ysId"
style="width: 100%"
placeholder="请输入账号原始ID"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="小程序包状态" prop="packState">
<el-select
v-model="ruleForm.packState"
placeholder="请选择小程序包状态"
>
<el-option
v-for="dict in dict.type.email_state"
: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="rzState">
<el-select
v-model="ruleForm.rzState"
placeholder="请选择认证状态"
>
<el-option
v-for="dict in dict.type.gzh_rzzt"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="认证时间" prop="rzsj">
<el-date-picker
v-model="ruleForm.rzsj"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="认证类型" prop="rzlx">
<el-select v-model="ruleForm.rzlx" placeholder="请选择认证类型">
<el-option
v-for="dict in dict.type.gzh_rzlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="icp备案状态" prop="icpState">
<el-input
v-model="ruleForm.icpState"
style="width: 100%"
placeholder="请输入icp备案状态"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="域名白名单" prop="ymbmd">
<el-input
v-model="ruleForm.ymbmd"
style="width: 100%"
placeholder="请输入域名白名单"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="服务类目" prop="fwlm">
<el-input
v-model="ruleForm.fwlm"
style="width: 100%"
placeholder="请输入服务类目"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
prop="hydzyx"
label="行业电子邮箱"
required
:rules="[
{
type: 'email',
required: true,
message: '请输入正确的邮箱地址',
trigger: ['change', 'change'],
},
]"
>
<el-input
v-model="ruleForm.hydzyx"
style="width: 100%"
placeholder="请输入行业电子邮箱"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属行业" prop="sshy">
<el-select v-model="ruleForm.sshy" placeholder="请选择所属行业">
<el-option
v-for="dict in dict.type.app_sshy"
: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="zdhy">
<el-select v-model="ruleForm.zdhy" placeholder="请选择重点行业">
<el-option
v-for="dict in dict.type.app_zdhy"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="行政区划" prop="xzqh">
<el-select v-model="ruleForm.xzqh" placeholder="请选择行政区划">
<el-option
v-for="dict in dict.type.app_xzqh"
: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="xtzrr">
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
prop="xtzrrdh"
label="系统责任人电话"
required
:rules="[
{
required: true,
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'change',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
prop="xtzrryx"
label="系统责任人邮箱"
required
:rules="[
{
required: true,
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['change', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" prop="xtzrrdz">
<el-input
v-model="ruleForm.xtzrrdz"
style="width: 100%"
placeholder="请输入系统责任人地址"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="引入插件APPID" prop="yycjAppid">
<el-input
v-model="ruleForm.yycjAppid"
style="width: 100%"
placeholder="请输入引入插件APPID"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="引用插件(开发者)" prop="yycjKfz">
<el-input
v-model="ruleForm.yycjKfz"
style="width: 100%"
placeholder="请输入引用插件(开发者)"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="系统简介" prop="xtjj">
<el-input
type="textarea"
resize="none"
placeholder="请输入系统简介"
:rows="5"
v-model="ruleForm.xtjj"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin: 10px 0" v-if="ruleForm.bfyy">
<span class="top-title-box">关停原因</span>
</el-row>
<el-row style="margin: 20px 0">
<el-form-item>
<div>{{ ruleForm.bfyy }}</div>
</el-form-item>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look' && $route.name == 'mytaskAuditInfo'"
>
<el-button type="danger" @click="newAssets(0)"></el-button>
<el-button @click="newAssets(1)"></el-button>
<el-button type="warning" @click="newAssets(2)"></el-button>
<el-button type="success" @click="newAssets(3)" :loading="loading"
>提交</el-button
>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack" class="fanhuipiaofu"
>返回</el-button
>
</el-row>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look' && $route.name == 'taskAuditInfo'"
>
<el-button type="danger" @click="JGnewAssets(0)"></el-button>
<el-button type="primary" @click="JGnewAssets(1)"></el-button>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
</div>
</div>
<baofei ref="baofei" :ruleForm="ruleForm" @assetTaskzc="guanting"></baofei>
<butongguo
ref="butongguo"
:chuandemingcheng="ruleForm.xcxmc"
:ruleForm="this.ruleForm"
dataname="assetMiniProgramsCpPo"
></butongguo>
</div>
</template>
<script>
import {
assetMiniPrograms,
miniProgramsInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import {
assetTaskminitaskSh,
assetTaskxcxzc,
assetTasksh,
assetTaskxcxjyTj,
assetTaskhistory,
} from "@/api/renwuApi/index.js";
import baofei from "@/views/components/renwuType/baofei.vue";
import butongguo from "@/views/components/renwuType/butongguo.vue";
import myMixin from "@/views/components/renwuType/minxfanhui.js";
export default {
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"gzh_state",
"gzh_rzzt",
"gzh_rzlx",
"email_state",
],
components: { baofei, butongguo },
mixins: [myMixin],
data() {
return {
ruleForm: {},
rules: {
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "change" },
],
xcxmc: [
{ required: true, message: "小程序名称不能为空", trigger: "change" },
],
appId: [
{ required: true, message: "APPID不能为空", trigger: "change" },
],
rzzt: [
{ required: true, message: "认证主体不能为空", trigger: "change" },
],
state: [
{ required: true, message: "小程序状态不能为空", trigger: "change" },
],
ysId: [
{ required: true, message: "账号原始ID不能为空", trigger: "change" },
],
packState: [
{
required: true,
message: "小程序包状态不能为空",
trigger: "change",
},
],
rzState: [
{ required: true, message: "认证状态不能为空", trigger: "change" },
],
rzsj: [
{ required: true, message: "认证时间不能为空", trigger: "change" },
],
rzlx: [
{ required: true, message: "认证类型不能为空", trigger: "change" },
],
icpState: [
{ required: true, message: "icp备案状态不能为空", trigger: "change" },
],
ymbmd: [
{ required: true, message: "域名白名单不能为空", trigger: "change" },
],
fwlm: [
{ required: true, message: "服务类目不能为空", trigger: "change" },
],
sshy: [
{ required: true, message: "所属行业不能为空", trigger: "change" },
],
zdhy: [
{ required: true, message: "重点行业不能为空", trigger: "change" },
],
xzqh: [
{ required: true, message: "行政区划不能为空", trigger: "change" },
],
xtzrr: [
{ required: true, message: "系统责任人不能为空", trigger: "change" },
],
xtzrryx: [
{
required: true,
message: "系统责任人邮箱不能为空",
trigger: "change",
},
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["change", "change"],
},
],
xtzrrdz: [
{
required: true,
message: "系统责任人地址不能为空",
trigger: "change",
},
],
yycjAppid: [
{
required: true,
message: "引入插件APPID不能为空",
trigger: "change",
},
],
yycjKfz: [
{
required: true,
message: "引用插件(开发者)不能为空",
trigger: "change",
},
],
xtjj: [
{ required: true, message: "系统简介不能为空", trigger: "change" },
],
},
loading: false,
disabled: false,
};
},
props: ["pageType", "id"],
mounted() {
console.log(this.$route);
if (this.pageType == "look") {
this.getInfo();
this.disabled = true;
this.$nextTick(() => {
const inputElements = document.querySelectorAll(".el-input__inner");
const textareaInputElements = document.querySelectorAll(
".el-textarea__inner"
);
inputElements.forEach((input) => {
input.placeholder = "";
});
textareaInputElements.forEach((input) => {
input.placeholder = "";
});
});
} else if (this.pageType == "change") {
this.getInfo();
this.disabled = false;
}
// if (this.$route.query.taskInfo == 'taskInfo') {
// this.disabled = true;
// }
},
methods: {
getInfo(id) {
if (this.$route.query.istijiaoshow) {
let obj = {
id: this.$route.query.assetId,
type: this.$route.query.type,
};
assetTaskhistory(obj).then((res) => {
this.ruleForm = res.data.assetMiniProgramsHistory;
console.log(111);
setTimeout(() => {
this.$refs.ruleForm.clearValidate();
}, 100);
});
} else {
let obj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
};
assetTaskminitaskSh(obj).then((res) => {
this.ruleForm = res.data;
console.log(111);
setTimeout(() => {
this.$refs.ruleForm.clearValidate();
}, 100);
});
}
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
guanting(ruleForm) {
assetTaskxcxzc(ruleForm).then((res) => {
this.$message({
type: "info",
message: "已关停",
});
this.$router.go(-1);
this.ruleForm.bfyy = "";
this.$refs.baofei.resetForm();
});
},
//
newAssets(type) {
if (type == 1) {
//
this.loading = true;
this.$router.go(-1);
this.loading = false;
return;
}
this.ruleForm.taskId = this.$route.query.taskId;
this.ruleForm.assetId = this.$route.query.assetId;
if (type == 0) {
this.$refs.baofei.open();
}
//
if (type == 2) {
this.loading = true;
assetTaskxcxzc(this.ruleForm).then((res) => {
console.log(res, "res");
this.$modal.msgSuccess("修改成功");
this.$router.go(-1);
this.loading = false;
});
}
if (type == 3) {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
assetTaskxcxjyTj(this.ruleForm).then((res) => {
this.loading = false;
this.$modal.msgSuccess("提交成功");
this.$router.go(-1);
});
}
});
}
},
JGnewAssets(type) {
this.ruleForm.taskId = this.$route.query.taskId;
this.ruleForm.assetId = this.$route.query.assetId;
if (type == 0) {
this.$refs["ruleForm"].validate((valid) => {
this.$refs.butongguo.open();
});
}
if (type == 1) {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
let tijioaobj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
xtmc: this.ruleForm.xcxmc,
status: 3,
type: this.$route.query.type,
assetMiniProgramsCpPo: this.ruleForm,
};
assetTasksh(tijioaobj).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("审核成功");
this.$router.go(-1);
}
});
}
});
}
},
},
};
</script>

@ -0,0 +1,978 @@
<!-- 公众号表单 -->
<template>
<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
: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="所属单位" prop="ssdw">
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入单位名称"></el-input> -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
disabled
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="平台类型" prop="ptlx" required>
<el-select
v-model="ruleForm.ptlx"
placeholder="请选择平台类型"
disabled
>
<el-option
v-for="dict in dict.type.sys_ptlx_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<div v-if="ruleForm.ptlx == 1">
<el-row>
<el-col :span="12">
<el-form-item label="微信号" prop="wxh">
<el-input
v-model="ruleForm.wxh"
style="width: 100%"
placeholder="请输入微信号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公众号名称" prop="gzhmc">
<el-input
v-model="ruleForm.gzhmc"
placeholder="请输入公众号名称"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
prop="tyshxydm"
class="daoqitixingren"
label="统一社会信用代码"
required
:rules="[
{
required: true,
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'change',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公众号状态" prop="gzhzt">
<el-select
v-model="ruleForm.gzhzt"
placeholder="请选择公众号状态"
>
<el-option
v-for="dict in dict.type.gzh_state"
: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="公众号ID" prop="gzhId">
<el-input
v-model="ruleForm.gzhId"
style="width: 100%"
placeholder="请输入公众号ID"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公众号类型" prop="gzhlx">
<el-select
v-model="ruleForm.gzhlx"
placeholder="请选择公众号类型"
>
<el-option
v-for="dict in dict.type.gzh_lx"
: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="rzState">
<el-select
v-model="ruleForm.rzState"
placeholder="请选择认证状态"
>
<el-option
v-for="dict in dict.type.gzh_rzzt"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="认证时间" prop="rzsj">
<el-date-picker
v-model="ruleForm.rzsj"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="认证类型" prop="rzlx">
<el-select
v-model="ruleForm.rzlx"
placeholder="请选择认证类型"
>
<el-option
v-for="dict in dict.type.gzh_rzlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属行业" prop="sshy">
<el-select
v-model="ruleForm.sshy"
placeholder="请选择所属行业"
>
<el-option
v-for="dict in dict.type.app_sshy"
: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="zdhy">
<el-select
v-model="ruleForm.zdhy"
placeholder="请选择重点行业"
>
<el-option
v-for="dict in dict.type.app_zdhy"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="行政区划" prop="xzqh">
<el-select
v-model="ruleForm.xzqh"
placeholder="请选择行政区划"
>
<el-option
v-for="dict in dict.type.app_xzqh"
: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="xtzrr">
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
prop="xtzrrdh"
label="系统责任人电话"
required
:rules="[
{
required: true,
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'change',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
prop="xtzrryx"
label="系统责任人邮箱"
required
:rules="[
{
required: true,
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['change', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" prop="xtzrrdz">
<el-input
v-model="ruleForm.xtzrrdz"
style="width: 100%"
placeholder="请输入系统责任人地址"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="认证主体" prop="rzzt">
<el-input
v-model="ruleForm.rzzt"
style="width: 100%"
placeholder="请输入认证主体"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="系统简介" prop="xtjj">
<el-input
type="textarea"
resize="none"
placeholder="请输入系统简介"
:rows="5"
v-model="ruleForm.xtjj"
></el-input>
</el-form-item>
</el-col>
</el-row>
<div>
<el-row>
<span class="top-title-box">菜单信息</span>
</el-row>
<el-row v-for="(domain, index) in ruleForm.cdList">
<el-col :span="12">
<el-form-item
:label="'菜单名称' + (index == 0 ? '' : index)"
required
:prop="'cdList.' + index + '.cdmc'"
:rules="{
required: true,
message: '菜单名称不能为空',
trigger: 'blur',
}"
>
<el-input
v-model="domain.cdmc"
style="width: 100%"
placeholder="请输入菜单名称"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="'菜单链接' + (index == 0 ? '' : index)"
required
:prop="'cdList.' + index + '.cdlj'"
:rules="{
required: true,
message: '菜单链接不能为空',
trigger: 'blur',
}"
>
<el-input
v-model="domain.cdlj"
style="width: 100%"
placeholder="请输入菜单链接"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
:label="'菜单类型' + (index == 0 ? '' : index)"
required
:prop="'cdList.' + index + '.cdlj'"
:rules="{
required: true,
message: '菜单类型不能为空',
trigger: 'change',
}"
>
<el-select
v-model="domain.cdlx"
placeholder="请选择菜单类型"
>
<el-option
v-for="dict in dict.type.gzh_cdlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="1"
style="text-align: center"
v-if="!disabled"
v-show="index != 0"
>
<i
@click="removeDomain(domain, 'cdList')"
class="el-icon-remove-outline"
style="font-size: 16px; cursor: pointer; margin-top: 8px"
></i>
</el-col>
</el-row>
<el-row v-if="pageType !== 'look'">
<el-col :span="24">
<el-form-item>
<el-button @click="addOtherConcat('cdList')"
>添加菜单</el-button
>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<div v-else>
<el-row>
<el-col :span="12">
<el-form-item
prop="tyshxydm"
class="daoqitixingren"
label="统一社会信用代码"
required
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="账号名称"
prop="gzhmc"
:rules="[
{
required: true,
message: '账号名称不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.gzhmc"
placeholder="请输入账号名称"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="账号ID"
required
prop="gzhId"
:rules="[
{
required: true,
message: '账号ID不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.gzhId"
style="width: 100%"
placeholder="请输入账号ID"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="账号状态"
required
prop="gzhzt"
:rules="[
{
required: true,
message: '账号状态不能为空',
trigger: 'blur',
},
]"
>
<el-select
v-model="ruleForm.gzhzt"
placeholder="请选择账号状态"
>
<el-option
v-for="dict in dict.type.gzh_state"
: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="rzzt"
:rules="[
{
required: true,
message: '开办主体不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.rzzt"
style="width: 100%"
placeholder="请输入开办主体"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="粉丝数"
required
prop="fss"
:rules="[
{
required: true,
message: '粉丝数不能为空',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.fss"
type="number"
style="width: 100%"
placeholder="请输入粉丝数"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="重点行业" required prop="zdhy">
<el-select
v-model="ruleForm.zdhy"
placeholder="请选择重点行业"
>
<el-option
v-for="dict in dict.type.app_zdhy"
: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="sshy">
<el-select
v-model="ruleForm.sshy"
placeholder="请选择所属行业"
>
<el-option
v-for="dict in dict.type.app_sshy"
: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="xtzrr">
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="xtzrrdh" label="系统责任人电话" required>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required prop="xtzrryx">
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" required prop="xtzrrdz">
<el-input
v-model="ruleForm.xtzrrdz"
style="width: 100%"
placeholder="请输入系统责任人地址"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="系统简介" required prop="xtjj">
<el-input
type="textarea"
resize="none"
placeholder="请输入系统简介"
:rows="5"
v-model="ruleForm.xtjj"
></el-input>
</el-form-item>
</el-col>
</el-row>
</div>
<el-row style="margin: 10px 0" v-if="ruleForm.bfyy">
<span class="top-title-box">关停原因</span>
</el-row>
<el-row style="margin: 20px 0">
<el-form-item>
<div>{{ ruleForm.bfyy }}</div>
</el-form-item>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look' && $route.name == 'mytaskAuditInfo'"
>
<el-button type="danger" @click="newAssets(0)"></el-button>
<el-button @click="newAssets(1)"></el-button>
<el-button type="warning" @click="newAssets(2)"></el-button>
<el-button type="success" @click="newAssets(3)" :loading="loading"
>提交</el-button
>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack" class="fanhuipiaofu"
>返回</el-button
>
</el-row>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look' && $route.name == 'taskAuditInfo'"
>
<el-button type="danger" @click="JGnewAssets(0)"></el-button>
<el-button type="primary" @click="JGnewAssets(1)"></el-button>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
</div>
</div>
<baofei ref="baofei" :ruleForm="ruleForm" @assetTaskzc="guanting"></baofei>
<butongguo
ref="butongguo"
:chuandemingcheng="ruleForm.gzhmc"
:ruleForm="this.ruleForm"
dataname="assetOfficialAccountCpPo"
></butongguo>
</div>
</template>
<script>
import {
assetOfficialAccount,
assetOfficialAccountInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import {
assetTaskofficetaskSh,
assetTaskgzhzc,
assetTasksh,
assetTaskgzhjyTj,
assetTaskhistory,
} from "@/api/renwuApi/index.js";
import baofei from "@/views/components/renwuType/baofei.vue";
import butongguo from "@/views/components/renwuType/butongguo.vue";
import myMixin from "@/views/components/renwuType/minxfanhui.js";
export default {
mixins: [myMixin],
components: { baofei, butongguo },
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"gzh_state",
"gzh_lx",
"gzh_rzzt",
"gzh_rzlx",
"gzh_cdlx",
"sys_ptlx_type",
],
data() {
return {
ruleForm: {
cdList: [
{
cdmc: "",
cdlj: "",
cdlx: "",
},
],
},
rules: {
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "change" },
],
gzhmc: [
{ required: true, message: "公众号名称不能为空", trigger: "change" },
],
wxh: [{ required: true, message: "微信号不能为空", trigger: "change" }],
rzzt: [
{ required: true, message: "认证主体不能为空", trigger: "change" },
],
tyshxydm: [
{
required: true,
message: "统一社会信用代码不能为空",
trigger: "change",
},
{
required: true,
pattern: /^[a-zA-Z0-9]{18}$/,
message: "请输入正确格式的18位统一社会信用代码",
trigger: "blur",
},
],
gzhzt: [
{ required: true, message: "公众号状态不能为空", trigger: "change" },
],
gzhId: [
{ required: true, message: "公众号ID不能为空", trigger: "change" },
],
gzhlx: [
{ required: true, message: "公众号类型不能为空", trigger: "change" },
],
rzState: [
{ required: true, message: "认证状态不能为空", trigger: "change" },
],
rzsj: [
{ required: true, message: "认证时间不能为空", trigger: "change" },
],
rzlx: [
{ required: true, message: "认证类型不能为空", trigger: "change" },
],
sshy: [
{ required: true, message: "所属行业不能为空", trigger: "change" },
],
zdhy: [
{ required: true, message: "重点行业不能为空", trigger: "change" },
],
xzqh: [
{ required: true, message: "行政区划不能为空", trigger: "change" },
],
xtzrr: [
{ required: true, message: "系统责任人不能为空", trigger: "change" },
],
xtzrrdh: [
{
required: true,
message: "系统责任人电话不能为空",
trigger: "change",
},
{
required: true,
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur",
},
],
xtzrryx: [
{
required: true,
message: "系统责任人邮箱不能为空",
trigger: "change",
},
{
required: true,
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"],
},
],
xtzrrdz: [
{
required: true,
message: "系统责任人地址不能为空",
trigger: "change",
},
],
// cdmc: [
// { required: true, message: "", trigger: "change" }
// ],
// cdlj: [
// { required: true, message: "", trigger: "change" }
// ],
// cdlx: [
// { required: true, message: "", trigger: "change" }
// ],
xtjj: [
{ required: true, message: "系统简介不能为空", trigger: "change" },
],
},
loading: false,
disabled: false,
};
},
props: ["pageType", "id"],
mounted() {
if (this.pageType == "look") {
this.getInfo(this.id);
this.disabled = true;
this.$nextTick(() => {
const inputElements = document.querySelectorAll(".el-input__inner");
const textareaInputElements = document.querySelectorAll(
".el-textarea__inner"
);
inputElements.forEach((input) => {
input.placeholder = "";
});
textareaInputElements.forEach((input) => {
input.placeholder = "";
});
});
} else if (this.pageType == "change") {
this.getInfo(this.id);
this.disabled = false;
}
// if (this.$route.query.taskInfo == 'taskInfo') {
// this.disabled = true;
// }
},
methods: {
removeDomain(item, type) {
var index = this.ruleForm[type].indexOf(item);
if (index !== -1) {
this.ruleForm[type].splice(index, 1);
}
},
//
addOtherConcat(type) {
this.ruleForm[type].push({
cdmc: "",
cdlj: "",
cdlx: "",
// key: Date.now()
});
},
getInfo(id) {
if (this.$route.query.istijiaoshow) {
let obj = {
id: this.$route.query.assetId,
type: this.$route.query.type,
};
assetTaskhistory(obj).then((res) => {
this.ruleForm = res.data.assetOfficialAccountHistory;
console.log(111);
setTimeout(() => {
this.$refs.ruleForm.clearValidate();
}, 100);
});
} else {
let obj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
};
assetTaskofficetaskSh(obj).then((res) => {
this.ruleForm = res.data;
if (!this.ruleForm.ptlx) {
this.ruleForm.ptlx = "1";
}
setTimeout(() => {
this.$refs.ruleForm.clearValidate();
}, 100);
});
}
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
guanting(ruleForm) {
assetTaskgzhzc(ruleForm).then((res) => {
this.$message({
type: "info",
message: "已关停",
});
this.$router.go(-1);
this.ruleForm.bfyy = "";
this.$refs.baofei.resetForm();
});
},
//
newAssets(type) {
if (type == 1) {
//
this.loading = true;
this.$router.go(-1);
this.loading = false;
return;
}
this.ruleForm.taskId = this.$route.query.taskId;
this.ruleForm.assetId = this.$route.query.assetId;
if (type == 0) {
this.$refs.baofei.open();
}
//
if (type == 2) {
this.loading = true;
assetTaskgzhzc(this.ruleForm).then((res) => {
console.log(res, "res");
this.$modal.msgSuccess("修改成功");
this.$router.go(-1);
this.loading = false;
});
}
if (type == 3) {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
assetTaskgzhjyTj(this.ruleForm).then((res) => {
this.loading = false;
this.$modal.msgSuccess("提交成功");
this.$router.go(-1);
});
}
});
}
},
JGnewAssets(type) {
this.ruleForm.taskId = this.$route.query.taskId;
this.ruleForm.assetId = this.$route.query.assetId;
if (type == 0) {
this.$refs["ruleForm"].validate((valid) => {
this.$refs.butongguo.open();
});
}
if (type == 1) {
this.$refs["ruleForm"].validate((valid) => {
let tijioaobj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
xtmc: this.ruleForm.gzhmc,
status: 3,
type: this.$route.query.type,
assetOfficialAccountCpPo: this.ruleForm,
};
assetTasksh(tijioaobj).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("审核成功");
this.$router.go(-1);
}
});
});
}
},
},
};
</script>

@ -0,0 +1,566 @@
<!-- 电子邮件表单 -->
<template>
<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
: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="所属单位" prop="ssdw">
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入单位名称"></el-input> -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
disabled
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="电子邮箱后缀" prop="dzyxhz">
<el-input
v-model="ruleForm.dzyxhz"
placeholder="请输入电子邮箱后缀"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="建设类型" prop="jslx">
<el-select v-model="ruleForm.jslx" placeholder="请选择建设类型">
<el-option
v-for="dict in dict.type.email_jslx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮件系统供应商" prop="yjxtgys">
<el-input
v-model="ruleForm.yjxtgys"
style="width: 100%"
placeholder="请输入邮件系统供应商"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="密码算法" prop="mmsf">
<el-input
v-model="ruleForm.mmsf"
placeholder="请输入密码算法"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮件系统状态" prop="yjxtzc">
<el-select
v-model="ruleForm.yjxtzc"
placeholder="请选择邮件系统状态"
>
<el-option
v-for="dict in dict.type.email_state"
: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="aqfhxt">
<el-select
v-model="ruleForm.aqfhxt"
placeholder="请选择安全防护系统"
>
<el-option
v-for="dict in dict.type.email_hasorno"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="安全备份环境" prop="aqbfhj">
<el-select
v-model="ruleForm.aqbfhj"
placeholder="请选择安全备份环境"
>
<el-option
v-for="dict in dict.type.email_hasorno"
: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="szzscs">
<el-input
v-model="ruleForm.szzscs"
style="width: 100%"
placeholder="请输入数字证书厂商"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="上线时间" prop="sxsj">
<el-date-picker
v-model="ruleForm.sxsj"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="所属行业" prop="sshy">
<el-select v-model="ruleForm.sshy" placeholder="请选择所属行业">
<el-option
v-for="dict in dict.type.app_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="重点行业" prop="zdhy">
<el-select v-model="ruleForm.zdhy" placeholder="请选择重点行业">
<el-option
v-for="dict in dict.type.app_zdhy"
: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="xzqh">
<el-select v-model="ruleForm.xzqh" placeholder="请选择行政区划">
<el-option
v-for="dict in dict.type.app_xzqh"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人" prop="xtzrr">
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
prop="xtzrrdh"
label="系统责任人电话"
required
:rules="[
{
required: true,
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'change',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
prop="xtzrryx"
label="系统责任人邮箱"
required
:rules="[
{
required: true,
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['change', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人地址" prop="xtzrrdz">
<el-input
v-model="ruleForm.xtzrrdz"
style="width: 100%"
placeholder="请输入系统责任人地址"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="简介" prop="jj">
<el-input
type="textarea"
resize="none"
placeholder="请输入简介"
:rows="5"
v-model="ruleForm.jj"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin: 10px 0" v-if="ruleForm.bfyy">
<span class="top-title-box">关停原因</span>
</el-row>
<el-row style="margin: 20px 0">
<el-form-item>
<div>{{ ruleForm.bfyy }}</div>
</el-form-item>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look' && $route.name == 'mytaskAuditInfo'"
>
<el-button type="danger" @click="newAssets(0)"></el-button>
<el-button @click="newAssets(1)"></el-button>
<el-button type="warning" @click="newAssets(2)"></el-button>
<el-button type="success" @click="newAssets(3)" :loading="loading"
>提交</el-button
>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack" class="fanhuipiaofu"
>返回</el-button
>
</el-row>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look' && $route.name == 'taskAuditInfo'"
>
<el-button type="danger" @click="JGnewAssets(0)"></el-button>
<el-button type="primary" @click="JGnewAssets(1)"></el-button>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
</div>
</div>
<baofei ref="baofei" :ruleForm="ruleForm" @assetTaskzc="guanting"></baofei>
<butongguo
ref="butongguo"
:chuandemingcheng="ruleForm.gzhmc"
:ruleForm="this.ruleForm"
dataname="assetEmailCpPo"
></butongguo>
</div>
</template>
<script>
import {
assetEmail,
assetEmailInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import {
assetTaskemailtaskSh,
assetTaskemailzc,
assetTasksh,
assetTaskemailjyTj,
assetTaskhistory,
} from "@/api/renwuApi/index.js";
import baofei from "@/views/components/renwuType/baofei.vue";
import butongguo from "@/views/components/renwuType/butongguo.vue";
import myMixin from "@/views/components/renwuType/minxfanhui.js";
export default {
components: { baofei, butongguo },
mixins: [myMixin],
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"email_jslx",
"email_state",
"email_hasorno",
],
data() {
return {
ruleForm: {},
rules: {
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "change" },
],
dzyxhz: [
{
required: true,
message: "电子邮箱后缀不能为空",
trigger: "change",
},
],
jslx: [
{ required: true, message: "建设类型不能为空", trigger: "change" },
],
yjxtgys: [
{
required: true,
message: "邮件系统供应商不能为空",
trigger: "change",
},
],
mmsf: [
{ required: true, message: "密码算法不能为空", trigger: "change" },
],
yjxtzc: [
{
required: true,
message: "邮件系统状态不能为空",
trigger: "change",
},
],
aqfhxt: [
{
required: true,
message: "安全防护系统不能为空",
trigger: "change",
},
],
aqbfhj: [
{
required: true,
message: "安全备份环境不能为空",
trigger: "change",
},
],
szzscs: [
{
required: true,
message: "数字证书厂商不能为空",
trigger: "change",
},
],
sxsj: [
{ required: true, message: "上线时间不能为空", trigger: "change" },
],
sshy: [
{ required: true, message: "所属行业不能为空", trigger: "change" },
],
zdhy: [
{ required: true, message: "重点行业不能为空", trigger: "change" },
],
xzqh: [
{ required: true, message: "行政区划不能为空", trigger: "change" },
],
xtzrr: [
{ required: true, message: "系统责任人不能为空", trigger: "change" },
],
xtzrrdz: [
{
required: true,
message: "系统责任人地址不能为空",
trigger: "change",
},
],
jj: [{ required: true, message: "简介不能为空", trigger: "change" }],
},
loading: false,
disabled: false,
};
},
props: ["pageType", "id"],
mounted() {
if (this.pageType == "look") {
this.getInfo(this.id);
this.disabled = true;
this.$nextTick(() => {
const inputElements = document.querySelectorAll(".el-input__inner");
const textareaInputElements = document.querySelectorAll(
".el-textarea__inner"
);
inputElements.forEach((input) => {
input.placeholder = "";
});
textareaInputElements.forEach((input) => {
input.placeholder = "";
});
});
} else if (this.pageType == "change") {
this.getInfo(this.id);
this.disabled = false;
}
// if (this.$route.query.taskInfo == 'taskInfo') {
// this.disabled = true;
// }
},
methods: {
getInfo(id) {
if (this.$route.query.istijiaoshow) {
let obj = {
id: this.$route.query.assetId,
type: this.$route.query.type,
};
assetTaskhistory(obj).then((res) => {
this.ruleForm = res.data.assetEmailHistory;
console.log(111);
setTimeout(() => {
this.$refs.ruleForm.clearValidate();
}, 100);
});
} else {
let obj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
};
assetTaskemailtaskSh(obj).then((res) => {
this.ruleForm = res.data;
setTimeout(() => {
this.$refs.ruleForm.clearValidate();
}, 100);
});
}
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
guanting(ruleForm) {
assetTaskemailzc(ruleForm).then((res) => {
this.$message({
type: "info",
message: "已关停",
});
this.$router.go(-1);
this.ruleForm.bfyy = "";
this.$refs.baofei.resetForm();
});
},
//
newAssets(type) {
if (type == 1) {
//
this.loading = true;
this.$router.go(-1);
this.loading = false;
return;
}
this.ruleForm.taskId = this.$route.query.taskId;
this.ruleForm.assetId = this.$route.query.assetId;
if (type == 0) {
this.$refs.baofei.open();
}
//
if (type == 2) {
this.loading = true;
assetTaskemailzc(this.ruleForm).then((res) => {
console.log(res, "res");
this.$modal.msgSuccess("修改成功");
this.$router.go(-1);
this.loading = false;
});
}
if (type == 3) {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
assetTaskemailjyTj(this.ruleForm).then((res) => {
this.loading = false;
this.$modal.msgSuccess("提交成功");
this.$router.go(-1);
});
}
});
}
},
JGnewAssets(type) {
this.ruleForm.taskId = this.$route.query.taskId;
this.ruleForm.assetId = this.$route.query.assetId;
if (type == 0) {
this.$refs["ruleForm"].validate((valid) => {
this.$refs.butongguo.open();
});
}
if (type == 1) {
this.$refs["ruleForm"].validate((valid) => {
let tijioaobj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
xtmc: this.ruleForm.dzyxhz,
status: 3,
type: this.$route.query.type,
assetEmailCpPo: this.ruleForm,
};
assetTasksh(tijioaobj).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("审核成功");
this.$router.go(-1);
}
});
});
}
},
},
};
</script>

@ -0,0 +1,422 @@
<!-- 移动应用程序表单 -->
<template>
<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 :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="所属单位" prop="ssdw">
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入单位名称"></el-input> -->
<el-autocomplete v-model="ruleForm.ssdw" :fetch-suggestions="querySearchAsync" placeholder="请输入所属单位"
disabled></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="移动应用名称" prop="appName">
<el-input v-model="ruleForm.appName" placeholder="请输入移动应用名称"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="包名" prop="pack">
<el-input v-model="ruleForm.pack" style="width: 100%;" placeholder="请输入包名"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="icp备案状态" prop="icpState">
<el-select v-model="ruleForm.icpState" placeholder="请选择icp备案状态">
<el-option v-for="dict in dict.type.app_icp_state" :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="icp备案号" prop="icpbah">
<el-input v-model="ruleForm.icpbah" placeholder="请输入icp备案号"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="tyshxydm" class="daoqitixingren" label="统一社会信用代码" required :rules="[
{
required: true,
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'change'
}
]">
<el-input v-model="ruleForm.tyshxydm" placeholder="请输入统一信用代码"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="文件名" prop="wjm">
<el-input v-model="ruleForm.wjm" placeholder="请输入文件名"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属行业" prop="sshy">
<el-select v-model="ruleForm.sshy" placeholder="请选择所属行业">
<el-option v-for="dict in dict.type.app_sshy" :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="zdhy">
<el-select v-model="ruleForm.zdhy" placeholder="请选择重点行业">
<el-option v-for="dict in dict.type.app_zdhy" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="行政区划" prop="xzqh">
<el-select v-model="ruleForm.xzqh" placeholder="请选择行政区划">
<el-option v-for="dict in dict.type.app_xzqh" :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="aqjgqk">
<el-select v-model="ruleForm.aqjgqk" placeholder="请选择安全加固情况">
<el-option v-for="dict in dict.type.app_aqjgqk" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="版本信息" prop="bbxx">
<el-input v-model="ruleForm.bbxx" style="width: 100%;" placeholder="请输入版本信息"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="版本信息(版本号)" prop="bbh">
<el-input v-model="ruleForm.bbh" style="width: 100%;" placeholder="请输入版本信息(版本号)"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="版本信息MD5" prop="bbxxMd5">
<el-input v-model="ruleForm.bbxxMd5" style="width: 100%;" placeholder="请输入版本信息MD5"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="版本信息(上架平台)" prop="bbxxSjpt">
<el-input v-model="ruleForm.bbxxSjpt" style="width: 100%;" placeholder="请输入版本信息(上架平台)"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="文件大小" prop="wjdx">
<el-input v-model="ruleForm.wjdx" style="width: 100%;" placeholder="请输入文件大小"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="移动应用系统状态" required>
<el-select v-model="ruleForm.appState" prop="appState" placeholder="请选择移动应用系统状态">
<el-option v-for="dict in dict.type.gzh_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="简介" prop="jj">
<el-input type="textarea" resize="none" placeholder="请输入简介" :rows="5" v-model="ruleForm.jj"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin: 10px 0;" v-if="ruleForm.bfyy">
<span class="top-title-box">关停原因</span>
</el-row>
<el-row style="margin: 20px 0;">
<el-form-item>
<div>{{ ruleForm.bfyy }}</div>
</el-form-item>
</el-row>
</el-form>
<el-row style="margin: 10px 0 ;padding-bottom: 50px; text-align: center;"
v-if="pageType !== 'look' && $route.name == 'mytaskAuditInfo'">
<el-button type="danger" @click="newAssets(0)"></el-button>
<el-button @click="newAssets(1)"></el-button>
<el-button type="warning" @click="newAssets(2)"></el-button>
<el-button type="success" @click="newAssets(3)" :loading="loading">提交</el-button>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
<el-row style="margin: 10px 0 ;padding-bottom: 50px; text-align: center;" v-if="pageType == 'look'">
<el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button>
</el-row>
<el-row style="margin: 10px 0 ;padding-bottom: 50px; text-align: center;"
v-if="pageType !== 'look' && $route.name == 'taskAuditInfo'">
<el-button type="danger" @click="JGnewAssets(0)"></el-button>
<el-button type="primary" @click="JGnewAssets(1)"></el-button>
<!-- <el-button type="primary" @click="sendBack" class="fanhuipiaofu">返回</el-button> -->
</el-row>
</div>
</div>
<baofei ref='baofei' :ruleForm='ruleForm' @assetTaskzc="guanting"></baofei>
<butongguo ref='butongguo' :chuandemingcheng='ruleForm.appName' :ruleForm="this.ruleForm" dataname="assetAppCpPo"></butongguo>
</div>
</template>
<script>
import { assetApp, assetAppInfo, unitAllList } from "@/api/auditPagesApi/index";
import { assetTaskapptaskSh, assetTaskappzc, assetTasksh, assetTaskappjyTj,assetTaskhistory } from "@/api/renwuApi/index.js"
import baofei from "@/views/components/renwuType/baofei.vue"
import butongguo from "@/views/components/renwuType/butongguo.vue"
import myMixin from '@/views/components/renwuType/minxfanhui.js';
export default {
components: { baofei, butongguo },
mixins: [myMixin],
dicts: ['app_icp_state', 'app_sshy', 'app_zdhy', 'app_xzqh', 'app_aqjgqk', 'gzh_state'],
data() {
return {
ruleForm: {
},
rules: {
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "change" }
],
appName: [
{ required: true, message: "移动应用名称不能为空", trigger: "change" }
],
pack: [
{ required: true, message: "包名不能为空", trigger: "change" }
],
icpState: [
{ required: true, message: "icp备案状态不能为空", trigger: "change" }
],
icpbah: [
{ required: true, message: "icp备案号不能为空", trigger: "change" }
],
wjm: [
{ required: true, message: "文件名不能为空", trigger: "change" }
],
sshy: [
{ required: true, message: "所属行业不能为空", trigger: "change" }
],
zdhy: [
{ required: true, message: "重点行业不能为空", trigger: "change" }
],
xzqh: [
{ required: true, message: "行政区划不能为空", trigger: "change" }
],
aqjgqk: [
{ required: true, message: "安全加固情况不能为空", trigger: "change" }
],
bbxx: [
{ required: true, message: "版本信息不能为空", trigger: "change" }
],
bbh: [
{ required: true, message: "版本信息(版本号)不能为空", trigger: "change" }
],
bbxxMd5: [
{ required: true, message: "版本信息MD5不能为空", trigger: "change" }
],
bbxxSjpt: [
{ required: true, message: "版本信息(上架平台)不能为空", trigger: "change" }
],
wjdx: [
{ required: true, message: "文件大小不能为空", trigger: "change" }
],
jj: [
{ required: true, message: "简介不能为空", trigger: "change" }
],
appState: [
{ required: true, message: "移动应用系统状态不能为空", trigger: "change" }
],
},
loading: false,
disabled: false,
}
},
props: ['pageType', 'id'],
mounted() {
if (this.pageType == 'look') {
this.getInfo(this.id)
this.disabled = true;
this.$nextTick(() => {
const inputElements = document.querySelectorAll('.el-input__inner');
const textareaInputElements = document.querySelectorAll('.el-textarea__inner');
inputElements.forEach((input) => {
input.placeholder = '';
});
textareaInputElements.forEach((input) => {
input.placeholder = '';
});
})
} else if (this.pageType == 'change') {
this.getInfo(this.id)
this.disabled = false;
}
// if (this.$route.query.taskInfo == 'taskInfo') {
// this.disabled = true;
// }
},
methods: {
getInfo(id) {
if (this.$route.query.istijiaoshow) {
let obj = {
id: this.$route.query.assetId,
type: this.$route.query.type
}
assetTaskhistory(obj).then(res => {
this.ruleForm = res.data.assetAppHistory;
console.log(111);
setTimeout(() => {
this.$refs.ruleForm.clearValidate()
}, 100);
})
} else {
let obj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId
}
assetTaskapptaskSh(obj).then(res => {
this.ruleForm = res.data;
setTimeout(() => {
this.$refs.ruleForm.clearValidate()
}, 100);
})
}
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then(res => {
res.data.forEach(item => {
results.push({
value: item.nickName,
id: item.id,
})
})
})
cb(results);
},
guanting(ruleForm) {
assetTaskappzc(ruleForm).then(res => {
this.$message({
type: 'info',
message: '已关停'
});
this.$router.go(-1);
this.ruleForm.bfyy = ""
this.$refs.baofei.resetForm()
})
},
//
newAssets(type) {
if (type == 1) {
//
this.loading = true
this.$router.go(-1);
this.loading = false
return
}
this.ruleForm.taskId = this.$route.query.taskId
this.ruleForm.assetId = this.$route.query.assetId
if (type == 0) {
this.$refs.baofei.open()
}
//
if (type == 2) {
this.loading = true
assetTaskappzc(this.ruleForm).then(res => {
console.log(res, "res");
this.$modal.msgSuccess("修改成功");
this.$router.go(-1);
this.loading = false
})
}
if (type == 3) {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
this.loading = true;
assetTaskappjyTj(this.ruleForm).then(res => {
this.loading = false;
this.$modal.msgSuccess("提交成功");
this.$router.go(-1);
})
}
})
}
},
JGnewAssets(type) {
this.ruleForm.taskId = this.$route.query.taskId
this.ruleForm.assetId = this.$route.query.assetId
if (type == 0) {
this.$refs['ruleForm'].validate((valid) => {
this.$refs.butongguo.open()
})
}
if (type == 1) {
this.$refs['ruleForm'].validate((valid) => {
let tijioaobj = {
taskId: this.$route.query.taskId,
assetId: this.$route.query.assetId,
xtmc: this.ruleForm.appName,
status: 3,
type: this.$route.query.type,
assetAppCpPo: this.ruleForm
}
assetTasksh(tijioaobj).then(res => {
if (res.code == 200) {
this.$modal.msgSuccess("审核成功");
this.$router.go(-1);
}
})
})
}
},
},
}
</script>

@ -0,0 +1,35 @@
// src/mixins/myMixin.js
export default {
data() {
return {
}
},
created() {
},
methods: {
sendBack() {
if (localStorage.getItem('ismypaginationTow')) {
let formInline = JSON.parse(localStorage.getItem('ismypaginationTow'))
formInline.isfanhuiTow = true
localStorage.setItem("ismypaginationTow", JSON.stringify(formInline))
}
console.log();
if (this.$route.query.istijiaoshow) {
this.$router.push({
name: 'TaskInfo', query: {
// pageType: "look",
id: this.$route.query.taskId,
assetId: this.$route.query.lookassetId,
lookassetId: this.$route.query.lookassetId,
pageType: this.$route.query.pageTypetow,
istijiaoshow: true
}
})
} else {
this.$router.go(-1);
}
},
}
};

@ -1,34 +1,84 @@
<template>
<div class="L-main L-mainTow" id="L-size-main">
<div class="content-search" id="L-header">
<div
class="L-main L-mainTow"
id="L-size-main"
>
<div
class="content-search"
id="L-header"
>
<div class="search-title">查询条件</div>
<el-form :inline="true" :model="queryParams" ref="queryForm" size="small" >
<el-form
:inline="true"
:model="queryParams"
ref="queryForm"
size="default"
>
<el-row>
<el-col :span="7">
<el-form-item label="单位名称:" prop="nickName">
<el-input v-model="queryParams.nickName" placeholder="请输入单位名称" clearable
@keyup.enter.native="handleQuery" />
<el-form-item
label="单位名称:"
prop="nickName"
>
<el-input
v-model="queryParams.nickName"
placeholder="请输入单位名称"
clearable
@keyup.enter.native="handleQuery"
style="width: 95%;"
/>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="单位类型:" prop="dwlx">
<el-select v-model="queryParams.dwlx" placeholder="请选择单位类型" clearable>
<el-option v-for="dict in dict.type.dwlx" :key="dict.value" :label="dict.label" :value="dict.value" />
<el-form-item
label="单位类型:"
prop="dwlx"
>
<el-select
v-model="queryParams.dwlx"
placeholder="请选择单位类型"
clearable
style="width: 95%;"
>
<el-option
v-for="dict in dict.type.dwlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="统一社会信用代码:" class="tyshxydm-class" prop="userName">
<el-input v-model="queryParams.userName" placeholder="请输入统一社会信用代码" clearable
@keyup.enter.native="handleQuery" />
<el-form-item
label="统一社会信用代码:"
class="tyshxydm-class"
prop="userName"
>
<el-input
v-model="queryParams.userName"
placeholder="请输入统一社会信用代码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
</el-col>
<el-col :span="3" style="text-align: right;padding-right: 20px;">
<el-col
:span="3"
style="text-align: right; padding-right: 20px"
>
<el-form-item class="unit-form">
<el-button size="default" @click="resetQuery"></el-button>
<el-button size="default" type="primary" @click="handleQuery"></el-button>
<el-button
size="default"
@click="resetQuery"
>重置</el-button
>
<el-button
size="default"
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
@ -37,274 +87,270 @@
<main>
<div class="search-title">
<span class="search-title-span">单位列表</span>
</div>
<section>
<el-table ref="multipleTable" v-loading="loading" :data="userList" :height="tabHeader" :max-height="tabHeader"
:row-class-name="tableRowClassName" @selection-change="handleSelectionChange" row-key="userName">
<el-table-column type="selection" width="55" :reserve-selection="true">
</el-table-column>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column label="单位名称" align="center" key="nickName" prop="nickName">
<template slot-scope="scope">{{ scope.row.nickName }}</template>
<el-table
ref="multipleTable"
v-loading="loading"
:data="userList"
:height="tabHeader"
:max-height="tabHeader"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
row-key="userName"
>
<el-table-column
type="selection"
width="55"
:reserve-selection="true"
/>
<el-table-column
type="index"
label="序号"
width="70"
align="center"
/>
<el-table-column
label="单位名称"
align="center"
key="nickName"
prop="nickName"
>
<template #default="scope">{{ scope.row.nickName }}</template>
</el-table-column>
<el-table-column label="单位类型" align="center" key="dwlx" prop="dwlx">
<template slot-scope="scope">
<dict-tag :options="dict.type.dwlx" :value="scope.row.dwlx" />
<el-table-column
label="单位类型"
align="center"
key="dwlx"
prop="dwlx"
>
<template #default="scope">
<dict-tag
:options="dict.type.dwlx"
:value="scope.row.dwlx"
/>
</template>
</el-table-column>
<el-table-column label="统一社会信用代码" align="center" key="userName" prop="userName">
<template slot-scope="scope">{{ scope.row.userName }}</template>
<el-table-column
label="统一社会信用代码"
align="center"
key="userName"
prop="userName"
>
<template #default="scope">{{ scope.row.userName }}</template>
</el-table-column>
<el-table-column label="所属区域" align="center" key="ssqycounty" prop="ssqycounty">
<template slot-scope="scope">{{ getSsqu(scope.row) }}</template>
<el-table-column
label="所属区域"
align="center"
key="ssqycounty"
prop="ssqycounty"
>
<template #default="scope">{{ getSsqu(scope.row) }}</template>
</el-table-column>
<el-table-column label="所属行业" align="center" key="sshy" prop="sshy">
<template slot-scope="scope">
<dict-tag :options="dict.type.sshy" :value="scope.row.sshy" />
<!-- {{ scope.row.sshy }} -->
<el-table-column
label="所属行业"
align="center"
key="sshy"
prop="sshy"
>
<template #default="scope">
<dict-tag
:options="dict.type.sshy"
:value="scope.row.sshy"
/>
</template>
</el-table-column>
<el-table-column label="单位地址" align="center" key="dwxxdz" prop="dwxxdz">
<template slot-scope="scope">{{ scope.row.dwxxdz }}</template>
<el-table-column
label="单位地址"
align="center"
key="dwxxdz"
prop="dwxxdz"
>
<template #default="scope">{{ scope.row.dwxxdz }}</template>
</el-table-column>
</el-table>
</section>
<my-pagination id="L-pagination" :total="total" :page="queryParams.current" :limit="queryParams.size"
@pagination="getPagination" :current-page.sync="queryParams.current"></my-pagination>
<my-pagination
id="L-pagination"
:total="total"
:page="queryParams.current"
:limit="queryParams.size"
@pagination="getPagination"
:current-page.sync="queryParams.current"
></my-pagination>
</main>
<div class="bottomclass">
<el-button size="default" @click="resetCancel"></el-button>
<el-button type="primary" size="default" @click="resetConfirm"></el-button>
<el-button
size="default"
@click="resetCancel"
>取消</el-button
>
<el-button
type="primary"
size="default"
@click="resetConfirm"
>确定</el-button
>
</div>
</div>
</template>
<script>
// import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
import { listUnitdw, delUnit } from "@/api/auditPagesApi/index";
<script setup>
import { ref, onMounted, onUnmounted } from "vue";
import { listUnitdw } from "@/api/auditPagesApi/index";
import { getToken } from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import myPagination from "@/views/components/Pagination/index.vue"
export default {
name: "User",
dicts: ['dwlx', 'sshy'],
components: { Treeselect, myPagination },
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
userList: [],
//
title: "",
//
deptOptions: undefined,
//
open: false,
//
deptName: undefined,
//
initPassword: undefined,
//
postOptions: [],
//
roleOptions: [],
//
form: {},
defaultProps: {
children: "children",
label: "label"
},
//
upload: {
//
open: false,
//
title: "",
//
isUploading: false,
//
updateSupport: 0,
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/tc/unit/importData"
},
//
queryParams: {
// propsemits
const emit = defineEmits(["liebiaoClose", "adddanweilist"]);
//
const loading = ref(true);
const userList = ref([]);
const total = ref(0);
const tabHeader = ref(undefined);
const tabclicklist = ref([]);
const queryForm = ref(null);
const multipleTable = ref(null);
const queryParams = ref({
current: 1,
size: 10,
userName: undefined,
nickName: undefined,
dwlx: undefined,
type:"0",
},
//
type: "0",
});
tabHeader: undefined,
tabclicklist: []
};
//
const dict = {
type: {
dwlx: [],
sshy: [],
},
watch: {
//
deptName(val) {
this.$refs.tree.filter(val);
};
//
const getSsqu = (row) => {
if (row.ssqyprovince && row.ssqycity && row.ssqycounty) {
return row.ssqyprovince + "/" + row.ssqycity + "/" + row.ssqycounty;
} else if (row.ssqyprovince && row.ssqycity) {
return row.ssqyprovince + "/" + row.ssqycity;
} else if (row.ssqyprovince) {
return row.ssqyprovince;
}
},
created() {
// this.getType();
// this.getConfigKey("sys.user.initPassword").then(response => {
// this.initPassword = response.msg;
// });
},
mounted() {
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods: {
getSsqu(row) {
if(row.ssqyprovince && row.ssqycity && row.ssqycounty) {
return row.ssqyprovince + "/" + row.ssqycity + '/' + row.ssqycounty
} else if(row.ssqyprovince && row.ssqycity) {
return row.ssqyprovince + "/" + row.ssqycity
} else if(row.ssqyprovince) {
return row.ssqyprovince
} else {
return
}
},
dakai(val) {
console.log(val);
return "";
};
this.toggleSelection(val)
},
resetCancel() {
this.$emit('liebiaoClose')
this.toggleSelection()
this.$emit('adddanweilist', [])
const resetCancel = () => {
emit("liebiaoClose");
toggleSelection();
emit("adddanweilist", []);
};
},
resetConfirm() {
this.$emit('adddanweilist', this.tabclicklist)
this.$emit('liebiaoClose')
this.toggleSelection()
const resetConfirm = () => {
emit("adddanweilist", tabclicklist.value);
emit("liebiaoClose");
toggleSelection();
};
},
// /table
toggleSelection(rows) {
const toggleSelection = (rows) => {
if (rows) {
rows.forEach(row => {
this.$refs.multipleTable.toggleRowSelection(row);
rows.forEach((row) => {
multipleTable.value.toggleRowSelection(row);
});
} else {
this.$refs.multipleTable.clearSelection();
}
},
handleSelectionChange(val) {
if (val) {
this.tabclicklist = val
multipleTable.value.clearSelection();
}
};
const handleSelectionChange = (val) => {
tabclicklist.value = val || [];
};
},
const tableRowClassName = ({ rowIndex }) => {
return rowIndex % 2 !== 0 ? "evenNumber-row" : "";
};
// table
tableRowClassName({ row, rowIndex }) {
if (rowIndex % 2 !== 0) {
return 'evenNumber-row';
}
return '';
},
getType(type){
this.queryParams.type = type.join(",")
this.getList()
},
/** 查询用户列表 */
getList(type) {
if(this.queryParams.type){
this.queryParams.type = this.queryParams.type
}
this.loading = true;
this.queryParams.isSearch = 1
listUnitdw(this.queryParams).then(response => {
this.userList = response.data.records;
this.total = response.data.total;
this.loading = false;
}
);
},
//
getPagination(pages) {
this.queryParams.current = pages.page;
this.queryParams.size = pages.limit;
this.getList();
},
//
const getType = (type) => {
queryParams.value.type = type.join(",");
getList();
};
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.current = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
if(this.queryParams.type){
this.queryParams.type = this.queryParams.type
const dakai = (val) => {
console.log(val);
toggleSelection(val);
};
// getType
defineExpose({
getType,
dakai,
});
const getList = async () => {
loading.value = true;
queryParams.value.isSearch = 1;
try {
const response = await listUnitdw(queryParams.value);
userList.value = response.data.records;
total.value = response.data.total;
} finally {
loading.value = false;
}
this.resetForm("queryForm");
this.toggleSelection()
this.handleQuery();
},
};
const getPagination = (pages) => {
queryParams.value.current = pages.page;
queryParams.value.size = pages.limit;
getList();
};
const handleQuery = () => {
queryParams.value.current = 1;
getList();
};
const resetQuery = () => {
queryForm.value.resetFields();
toggleSelection();
handleQuery();
};
//
cancalDebounce() {
const element = document.getElementById('L-size-main'); // ID
const header = document.getElementById('L-header'); // ID
const pagination = document.getElementById('L-pagination'); // ID
const cancalDebounce = () => {
const element = document.getElementById("L-size-main");
const header = document.getElementById("L-header");
const pagination = document.getElementById("L-pagination");
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - 120;
}
}
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 120;
};
//
onMounted(() => {
getList();
cancalDebounce();
window.addEventListener("resize", cancalDebounce);
});
onUnmounted(() => {
window.removeEventListener("resize", cancalDebounce);
});
</script>
<style lang="scss" scoped>
::v-deep .danweiList{
:deep(.danweiList) {
padding: 0 20px;
}
::v-deep .content-search{
:deep(.content-search) {
padding-top: 10px;
}
.L-mainTow {
background-color: #ffffff !important;
}
::v-deep .search-title{
:deep(.search-title) {
border: none !important;
}
</style>

@ -96,11 +96,13 @@
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="审核状态:" style="width: 95%;">
<el-form-item
label="审核状态:"
style="width: 95%"
>
<el-select
v-model="formInline.status"
placeholder="请选择"
>
<el-option
label="待核查"
@ -172,7 +174,10 @@
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="完成状态:" style="width: 95%;">
<el-form-item
label="完成状态:"
style="width: 95%"
>
<el-select
v-model="formInlineTwo.taskStatus"
placeholder="请选择"
@ -703,7 +708,14 @@
</template>
<script setup>
import { ref, onMounted, onUnmounted, watch, nextTick } from "vue";
import {
ref,
onMounted,
onUnmounted,
watch,
nextTick,
getCurrentInstance,
} from "vue";
import { useRoute, useRouter } from "vue-router";
import useUserStore from "@/store/modules/user";
import * as echarts from "echarts";
@ -721,6 +733,7 @@ import {
const route = useRoute();
const router = useRouter();
const userStore = useUserStore();
const { proxy } = getCurrentInstance();
// Reactive state
const index = ref(1);
@ -793,7 +806,6 @@ const daochu = () => {
const handleClick = (tab) => {
activeName.value = tab.props.name;
xtmcName.value = tab.props.xtmcName;
localStorage.setItem("activeName", activeName.value);
handleQuery();
};
@ -835,9 +847,10 @@ const assetLcpageList = () => {
const importClose = () => {};
const goInfo = (type, row) => {
if (type == 1) {
if (type === 1) {
proxy.setActiveMenu("/taskManagement");
router.push({
name: "taskAuditInfo",
path: "/webZC-add",
query: {
pageType: "look",
taskId: row.taskId,
@ -846,8 +859,9 @@ const goInfo = (type, row) => {
},
});
} else if (type == 2) {
proxy.setActiveMenu("/taskManagement");
router.push({
name: "taskAuditInfo",
path: "/webZC-add",
query: {
pageType: "change",
taskId: row.taskId,
@ -890,10 +904,7 @@ const titleInfoObjtype = (type = "0,1") => {
});
activeName.value = chanckListTow.value[0].lable;
if (localStorage.getItem("activeName")) {
activeName.value = localStorage.getItem("activeName");
localStorage.setItem("activeName", activeName.value);
}
const listname = chanckListTow.value.find(
(item) => item.lable == activeName.value
@ -937,7 +948,7 @@ const resetQuery = () => {
if (index.value == 1) {
formInline.value = { type: activeName.value };
localStorage.removeItem("ismypaginationTow");
// localStorage.removeItem("ismypaginationTow");
getList();
} else if (index.value == 2) {
formInlineTwo.value = { dwmc: "", taskStatus: "" };
@ -955,7 +966,7 @@ const handleQuery = () => {
if (index.value == 1) {
pagination.value = { ...pagination.value, ...formInline.value };
formInline.value.isfanhuiTow = false;
localStorage.setItem("ismypaginationTow", JSON.stringify(formInline.value));
// localStorage.setItem("ismypaginationTow", JSON.stringify(formInline.value));
getList();
} else if (index.value == 2) {
pagination.value = { ...pagination.value, ...formInlineTwo.value };
@ -1033,16 +1044,13 @@ const myEchartsis = () => {
}
try {
//
if (myChart.value) {
myChart.value.dispose();
myChart.value = null;
}
//
myChart.value = echarts.init(myEchartsRef.value);
//
const option = {
legend: { top: "bottom" },
toolbox: { show: true },
@ -1067,43 +1075,45 @@ const myEchartsis = () => {
],
};
//
myChart.value.setOption(option);
//
myChart.value.on("click", (params) => {
formInlineTwo.value.taskStatus = params.data.taskStatus;
handleQuery();
});
console.log("图表初始化完成");
} catch (error) {
console.error("初始化 echarts 失败:", error);
}
};
const tjiaojilchakan = (row) => {
router.push({
name: "taskAuditInfolishichakan",
query: {
pageType: "look",
taskId: taskisid.value,
assetId: row.id,
lookassetId: lookassetId.value,
type: activeName.value,
pageTypetow: pageTypetow.value,
istijiaoshow: true,
},
lookassetId.value = row.id;
const obj = {
assetId: row.id - 0,
taskId: row.taskId - 0,
type: activeName.value - 0,
};
assetTaskzcTj(obj).then((res) => {
tableDatajilu.value = res.data;
if (tableDatajilu.value.length != 0) {
tableDatajilu.value.forEach((res) => {
res.status = 4;
});
tableDatajilu.value[0].status = 1;
}
zichantijiaojil.value.open();
});
};
const looklishi = (row) => {
lookassetId.value = row.id;
const obj = {
assetId: row.id - 0,
taskId: row.taskId - 0,
type: activeName.value - 0,
assetId: row.id,
taskId: row.taskId,
type: activeName.value,
};
assetTaskzcTj(obj).then((res) => {
@ -1146,14 +1156,14 @@ onMounted(() => {
assetLcpageList();
getEchartsdata();
if (localStorage.getItem("ismypaginationTow")) {
if (JSON.parse(localStorage.getItem("ismypaginationTow")).isfanhuiTow) {
formInline.value = JSON.parse(localStorage.getItem("ismypaginationTow"));
titleInfo();
} else {
localStorage.removeItem("ismypaginationTow");
}
}
// if (localStorage.getItem("ismypaginationTow")) {
// if (JSON.parse(localStorage.getItem("ismypaginationTow")).isfanhuiTow) {
// formInline.value = JSON.parse(localStorage.getItem("ismypaginationTow"));
// titleInfo();
// } else {
// localStorage.removeItem("ismypaginationTow");
// }
// }
pageTypetow.value = route.query.pageType;
});
@ -1177,19 +1187,16 @@ watch(
</script>
<style lang="scss" scoped>
::v-deep .el-timeline {
:deep(.el-timeline) {
padding-left: 0;
font-size: 12px;
}
::v-deep .el-form-item__label {
:deep(.el-form-item__label) {
padding-right: 3px;
}
.look-info {
}
::v-deep .el-dialog {
:deep(.el-dialog) {
margin-top: 20vh !important;
}

@ -307,7 +307,7 @@
prop="dwmc"
class="select-box"
>
<el-col>
<div style="display: flex; width: 100%; gap: 10px">
<el-select
v-model="ruleForm.dwmc"
placeholder="请选择核查单位"
@ -316,14 +316,12 @@
@remove-tag="isclear"
>
</el-select>
</el-col>
<el-col class="btn-box">
<el-button
type="primary"
@click="addliebiao"
><i class="el-icon-s-unfold"></i
:icon="Expand"
></el-button>
</el-col>
</div>
</el-form-item>
<el-form-item
label="任务期限"
@ -364,7 +362,7 @@
width="80%"
>
<danweiList
ref="danweiList"
ref="danweiListRef"
@adddanweilist="adddanweilist"
@liebiaoClose="liebiaoClose"
></danweiList>
@ -373,34 +371,31 @@
</div>
</template>
<script>
<script setup>
import { ref, onMounted, onUnmounted, getCurrentInstance } from "vue";
import { useRouter } from "vue-router";
import { ElMessage, ElMessageBox } from "element-plus";
// 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 myPagination from "@/views/components/Pagination/index.vue";
import myDialog from "@/views/components/myDialog/index.vue";
import danweiList from "@/views/system/user/danweiList.vue";
import { Plus, Expand } from "@element-plus/icons-vue";
import {
addassetTaskadd,
getassetTask,
getassetTaskid,
assetTaskclose,
} from "@/api/renwuApi/index.js";
import { Plus } from "@element-plus/icons-vue";
export default {
// components: { myPagination, myDialog, danweiList },
setup() {
const router = useRouter();
const { proxy } = getCurrentInstance();
// Refs
const taskDialog = ref(null);
const liebiaoDialog = ref(null);
const danweiList = ref(null);
const ruleFormRef = ref(null);
const pickerOptions = {
const router = useRouter();
// Refs
const taskDialog = ref(null);
const liebiaoDialog = ref(null);
const danweiListRef = ref(null);
const ruleFormRef = ref(null);
const { proxy } = getCurrentInstance();
const pickerOptions = {
disabledDate(time) {
const date = new Date();
const oneday = date.getTime();
@ -413,64 +408,62 @@ export default {
let second = data.getSeconds();
return [`${hour}:${minute}:${second} - 23:59:59`];
})(),
};
};
const btnloading = ref(false);
const formInline = ref({
const btnloading = ref(false);
const formInline = ref({
name: "",
type: "",
time: [],
number: "",
status: "",
});
const total = ref(0);
const pagination = ref({
});
const total = ref(0);
const pagination = ref({
current: 1,
size: 10,
});
const tableData = ref([]);
const loading = ref(false);
const tabHeader = ref(undefined);
const ruleForm = ref({
});
const tableData = ref([]);
const loading = ref(false);
const tabHeader = ref(undefined);
const ruleForm = ref({
taskName: "",
dwmc: [],
taskDeadline: "",
type: [],
});
const rules = ref({
});
const rules = ref({
taskName: [{ required: true, message: "请输入", trigger: "change" }],
dwmc: [{ required: true, message: "请选择", trigger: "change" }],
taskDeadline: [
{ required: true, message: "请选择日期", trigger: "change" },
],
taskDeadline: [{ required: true, message: "请选择日期", trigger: "change" }],
type: [{ required: true, message: "请选择", trigger: "change" }],
});
const tabclicklist = ref([]);
});
const tabclicklist = ref([]);
const chanckList = ref([
const chanckList = ref([
{ lable: "0", conent: "web资产" },
{ lable: "1", conent: "小程序资产" },
{ lable: "2", conent: "公众号资产" },
{ lable: "3", conent: "电子邮件资产" },
{ lable: "4", conent: "移动应用程序资产" },
]);
]);
// Methods
const isclear = (value) => {
// Methods
const isclear = (value) => {
tabclicklist.value = tabclicklist.value.filter(
(user) => user.nickName != value
);
};
};
const checkboxChange = () => {
const checkboxChange = () => {
ruleForm.value.dwmc = [];
tabclicklist.value = [];
setTimeout(() => {
ruleFormRef.value.clearValidate();
}, 0);
};
};
const resetForm = () => {
const resetForm = () => {
ruleForm.value = {
dwmc: [],
taskName: "",
@ -480,15 +473,15 @@ export default {
taskDialog.value.close();
tabclicklist.value = [];
btnloading.value = false;
};
};
const fonsisis = (data) => {
const fonsisis = (data) => {
const specificTime = new Date(data);
const currentTime = new Date();
return currentTime <= specificTime;
};
};
const submitForm = async () => {
const submitForm = async () => {
if (!fonsisis(ruleForm.value.taskDeadline)) {
ElMessage.error("选择时间不能小于当前时间");
return false;
@ -513,18 +506,18 @@ export default {
} finally {
btnloading.value = false;
}
};
};
const adddanweilist = (val) => {
const adddanweilist = (val) => {
if (val) {
ruleForm.value.dwmc = val.map((element) => element.nickName);
} else {
ruleForm.value.dwmc = [];
}
tabclicklist.value = val || [];
};
};
const getInfo = async () => {
const getInfo = async () => {
loading.value = true;
try {
const res = await getassetTask(pagination.value);
@ -533,9 +526,9 @@ export default {
} finally {
loading.value = false;
}
};
};
const resetQuery = () => {
const resetQuery = () => {
formInline.value = {
name: "",
type: "",
@ -549,26 +542,26 @@ export default {
};
localStorage.removeItem("ismypagination");
getInfo();
};
};
const addliebiao = () => {
const addliebiao = () => {
if (ruleForm.value.type.length > 0) {
liebiaoDialog.value.open();
setTimeout(() => {
danweiList.value.getType(ruleForm.value.type);
danweiListRef.value.getType(ruleForm.value.type);
if (tabclicklist.value) {
setTimeout(() => {
danweiList.value.dakai(tabclicklist.value);
danweiListRef.value.dakai(tabclicklist.value);
}, 100);
}
}, 10);
} else {
ElMessage("请先选择核查资产类型");
}
};
};
const liebiaoClose = () => {
danweiList.value.queryParams = {
const liebiaoClose = () => {
danweiListRef.value.queryParams = {
current: 1,
size: 10,
userName: undefined,
@ -576,9 +569,9 @@ export default {
dwlx: undefined,
};
liebiaoDialog.value.close();
};
};
const handleQuery = () => {
const handleQuery = () => {
pagination.value = {
current: 1,
size: 10,
@ -593,26 +586,26 @@ export default {
formInline.value.isfanhui = false;
localStorage.setItem("ismypagination", JSON.stringify(formInline.value));
getInfo();
};
};
const getPagination = (pages) => {
const getPagination = (pages) => {
pagination.value.current = pages.page;
pagination.value.size = pages.limit;
getInfo();
};
};
const handleAdd = () => {
const handleAdd = () => {
taskDialog.value.open();
setTimeout(() => {
ruleFormRef.value.clearValidate();
}, 100);
};
};
const importClose = () => {
const importClose = () => {
resetForm();
};
};
const goInfo = (row) => {
const goInfo = (row) => {
getassetTaskid(row.id);
proxy.setActiveMenu("/taskManagement");
router.push({
@ -622,19 +615,20 @@ export default {
id: row.id,
},
});
};
};
const delInfo = (row) => {
const delInfo = (row) => {
proxy.setActiveMenu("/taskManagement");
router.push({
name: "TaskInfo",
path: "/taskManagement-info",
query: {
pageType: "info",
id: row.id,
},
});
};
};
const guanbijiekou = (row) => {
const guanbijiekou = (row) => {
ElMessageBox.confirm("此操作将关闭任务, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
@ -652,13 +646,13 @@ export default {
.catch(() => {
ElMessage.info("已取消关闭");
});
};
};
const tableRowClassName = ({ rowIndex }) => {
const tableRowClassName = ({ rowIndex }) => {
return rowIndex % 2 !== 0 ? "evenNumber-row" : "";
};
};
const cancalDebounce = () => {
const cancalDebounce = () => {
const element = document.getElementById("L-size-main");
const header = document.getElementById("L-header");
const pagination = document.getElementById("L-pagination");
@ -666,10 +660,10 @@ export default {
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110;
};
};
// Lifecycle hooks
onMounted(() => {
// Lifecycle hooks
onMounted(() => {
if (localStorage.getItem("ismypagination")) {
const storedData = JSON.parse(localStorage.getItem("ismypagination"));
if (storedData.isfanhui) {
@ -684,20 +678,18 @@ export default {
getInfo();
cancalDebounce();
window.addEventListener("resize", cancalDebounce);
});
});
onUnmounted(() => {
onUnmounted(() => {
window.removeEventListener("resize", cancalDebounce);
});
});
return {
// Refs
// Expose to template
defineExpose({
taskDialog,
liebiaoDialog,
danweiList,
ruleFormRef,
// Data
pickerOptions,
btnloading,
formInline,
@ -710,8 +702,7 @@ export default {
rules,
tabclicklist,
chanckList,
// Methods
Plus,
isclear,
checkboxChange,
resetForm,
@ -731,9 +722,7 @@ export default {
guanbijiekou,
tableRowClassName,
cancalDebounce,
};
},
};
});
</script>
<style lang="scss" scoped>
@ -741,9 +730,19 @@ export default {
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;
}
</style>
<style lang="scss" scoped>
.el-icon-s-unfold {
font-size: 16px;
}
.el-icon-delete {
color: #409eff;
font-size: 16px;

@ -1,53 +0,0 @@
<template>
<assetsTypeOne :pageType="$route.query.pageType" :audit="$route.query.pageType == 'change' ? true : false" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-if="$route.query.type == 0" />
<assetsTypeTwo :pageType="$route.query.pageType" :audit="$route.query.pageType == 'change' ? true : false" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 1" />
<assetsTypeThree :pageType="$route.query.pageType" :audit="$route.query.pageType == 'change' ? true : false" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 2" />
<assetsTypeFour :pageType="$route.query.pageType" :audit="$route.query.pageType == 'change' ? true : false" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 3" />
<assetsTypeFive :pageType="$route.query.pageType" :audit="$route.query.pageType == 'change' ? true : false" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 4" />
</template>
<script>
// web
import assetsTypeOne from "@/views/components/myAssetsType/index.vue"
//
import assetsTypeTwo from "@/views/components/myAssetsType/index_v1.vue"
//
import assetsTypeThree from "@/views/components/myAssetsType/index_v2.vue"
//
import assetsTypeFour from "@/views/components/myAssetsType/index_v3.vue"
//
import assetsTypeFive from "@/views/components/myAssetsType/index_v4.vue"
export default {
name: "AssetsAuth",
components:{
assetsTypeOne,
assetsTypeTwo,
assetsTypeThree,
assetsTypeFour,
assetsTypeFive,
},
data() {
return {
}
},
beforeRouteEnter(to,from,next){
to.meta.type = to.query.type
if(to.meta.pageType == 'look') {
to.meta.title = '查看资产'
} else if(to.meta.pageType == 'change'){
to.meta.title = '审批资产'
}
// if(to.meta.type == 0) {
// to.meta.activeMenu = "/assetRecord/myWebAssets"
// } else if(to.meta.type == 1) {
// to.meta.activeMenu = "/assetRecord/myProgram"
// } else if(to.meta.type == 2) {
// to.meta.activeMenu = "/assetRecord/myOfficialAccount"
// } else if(to.meta.type == 3) {
// to.meta.activeMenu = "/assetRecord/myEmail"
// } else if(to.meta.type == 4) {
// to.meta.activeMenu = "/assetRecord/myMobileApplication"
// }
next();
},
}
</script>

@ -286,10 +286,10 @@
</template>
<script setup>
import { ref, onMounted, onUnmounted } from "vue";
import { ref, onMounted, onUnmounted ,getCurrentInstance} from "vue";
import { useRouter, useRoute } from "vue-router";
import { ElMessage } from "element-plus";
import myPagination from "@/views/components/Pagination/index.vue"
import myPagination from "@/views/components/Pagination/index.vue";
import {
getAuditList,
miniProgramsGetAuditList,
@ -319,11 +319,11 @@ const pagination = ref({
});
const btnArr = [
{ label: "web资产", value: "web" },
{ label: "小程序", value: "xcx" },
{ label: "公众号", value: "gzh" },
{ label: "电子邮件", value: "emil" },
{ label: "移动应用系统", value: "app" },
{ label: "web资产", value: "web", routeName: "WebZC-info"},
{ label: "小程序", value: "xcx", routeName: "XcxZC-info" },
{ label: "公众号", value: "gzh", routeName: "GzhZC-info" },
{ label: "电子邮件", value: "emil", routeName: "DzyjZC-info" },
{ label: "移动应用系统", value: "app", routeName: "YdyyxtZC-info" },
];
const btnShow = ref("web");
@ -428,9 +428,15 @@ const goInfo = (row) => {
emil: row.emailId,
app: row.appId,
};
const assetType = btnShow.value;
// tab
const routeItem = btnArr.find((item) => item.value === assetType);
const routeName = routeItem.routeName
proxy.setActiveMenu("/unitFill2" );
router.push({
name: "unitAssetsAuth",
name: routeName,
query: {
type: typeMap[btnShow.value],
pageType: "look",
@ -542,10 +548,6 @@ onUnmounted(() => {
.el-icon-s-unfold {
font-size: 16px;
}
// ::v-deep .el-dialog__body{
// padding-left: 80px;
// }
.el-icon-delete {
color: #409eff;
font-size: 16px;

@ -1,53 +0,0 @@
<template>
<assetsTypeOne :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-if="$route.query.type == 0" />
<assetsTypeTwo :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 1" />
<assetsTypeThree :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 2" />
<assetsTypeFour :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 3" />
<assetsTypeFive :pageType="$route.query.pageType" :isModdle="true" :id="$route.query.id" :queryData="$route.query.queryData" :name="$route.query.name" v-else-if="$route.query.type == 4" />
</template>
<script>
// web
import assetsTypeOne from "@/views/components/myAssetsType/index.vue"
//
import assetsTypeTwo from "@/views/components/myAssetsType/index_v1.vue"
//
import assetsTypeThree from "@/views/components/myAssetsType/index_v2.vue"
//
import assetsTypeFour from "@/views/components/myAssetsType/index_v3.vue"
//
import assetsTypeFive from "@/views/components/myAssetsType/index_v4.vue"
export default {
name: "AssetsAuth",
components:{
assetsTypeOne,
assetsTypeTwo,
assetsTypeThree,
assetsTypeFour,
assetsTypeFive,
},
data() {
return {
}
},
beforeRouteEnter(to,from,next){
to.meta.type = to.query.type
if(to.meta.pageType == 'look') {
to.meta.title = '查看资产'
} else if(to.meta.pageType == 'change'){
to.meta.title = '修改资产'
}
// if(to.meta.type == 0) {
// to.meta.activeMenu = "/assetRecord/myWebAssets"
// } else if(to.meta.type == 1) {
// to.meta.activeMenu = "/assetRecord/myProgram"
// } else if(to.meta.type == 2) {
// to.meta.activeMenu = "/assetRecord/myOfficialAccount"
// } else if(to.meta.type == 3) {
// to.meta.activeMenu = "/assetRecord/myEmail"
// } else if(to.meta.type == 4) {
// to.meta.activeMenu = "/assetRecord/myMobileApplication"
// }
next();
},
}
</script>

@ -1,402 +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="default" @click="resetQuery('queryFrom')"></el-button>
<el-button size="default" 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"
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:'',
}
},
mounted() {
// this.getInfo(1);
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods: {
//
getInfo(id) {
this.loading = true;
// 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>

@ -1,291 +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="queryFormRef"
:model="formInline"
size="default"
class="demo-form-inline"
>
<el-row>
<el-col :span="7">
<el-form-item label="电子邮箱后缀:" prop="dzyxhz">
<el-input
v-model="formInline.dzyxhz"
placeholder="请输入电子邮箱后缀"
style="width: 95%;"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="邮件系统状态:" prop="xtzt">
<el-select
v-model="formInline.xtzt"
placeholder="请选择邮件系统状态"
>
<el-option
v-for="dict in email_state"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3" style="text-align: right">
<el-form-item class="unit-form">
<el-button size="default" @click="resetQuery"></el-button>
<el-button
size="default"
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<span class="search-title-span">资产列表</span>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
:icon="Download"
size="default"
@click="handleExport"
>导出</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
:icon="Plus"
size="default"
@click="handleAdd"
>新增资产</el-button
>
</el-col>
</el-row>
</div>
<section>
<el-table
v-loading="loading"
:data="tableData"
:height="tabHeader"
:row-class-name="tableRowClassName"
:max-height="tabHeader"
>
<el-table-column
type="index"
width="60"
label="序号"
align="center"
/>
<el-table-column
label="所属单位"
key="ssdw"
prop="ssdw"
align="center"
/>
<el-table-column
label="电子邮箱后缀"
key="dzyxhz"
prop="dzyxhz"
align="center"
/>
<el-table-column
label="邮件系统供应商"
key="yjxtgys"
prop="yjxtgys"
align="center"
/>
<el-table-column
label="新增时间"
key="createTime"
prop="createTime"
align="center"
/>
<el-table-column
label="邮件系统状态"
key="status"
prop="status"
class-name="table-status"
align="center"
>
<template #default="scope">
<span v-if="scope.row.yjxtzc == 1" style="color: #16b771">
正常
</span>
<span v-if="scope.row.yjxtzc == 2" style="color: #f58a0c">
停用
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template #default="scope">
<div style="display: flex; align-items: center; justify-content: center;">
<div style="display: flex; align-items: center; cursor: pointer" @click="goInfo(scope.row, 1)">
<img src="@/assets/images/icon-ck@2x.png" alt="" style="width: 20px; margin-right: 5px" />
<span class="look-info" style="color: #1485ef; margin-right: 15px">查看</span>
</div>
<div
v-if="!scope.row.auditState || scope.row.auditState == 2"
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row, 2)"
>
<img src="@/assets/images/edit.png" alt="" style="width: 15px; margin-right: 5px" />
<span class="look-info" style="color: #1485ef; margin-right: 15px">编辑</span>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="formInline.current"
:limit="formInline.size"
@pagination="getPagination"
v-model:current-page="formInline.current"
></my-pagination>
</main>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, onUnmounted } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import myPagination from '@/views/components/Pagination/index.vue'
import { assetEmailList } from '@/api/auditPagesApi/index'
import { Download, Plus } from "@element-plus/icons-vue";
const route = useRoute()
const router = useRouter()
//
const formInline = reactive({
dzyxhz: '',
xtzt: '',
current: 1,
size: 10
})
//
const loading = ref(false)
const total = ref(0)
const tableData = ref([])
const tabHeader = ref(undefined)
//
const { proxy } = getCurrentInstance();
const { email_state } = proxy.useDict(
"email_state"
);
//
const handleAdd = () => {
router.push({
name: 'myAssetsAuth',
query: {
pageType: 'add',
type: 3,
queryData: formInline,
name: 'MyEmail'
}
})
}
const getList = async () => {
loading.value = true
try {
const res = await assetEmailList(formInline)
total.value = res.data.total
tableData.value = res.data.records
} finally {
loading.value = false
}
}
const resetQuery = () => {
formInline.dzyxhz = ''
formInline.xtzt = ''
formInline.current = 1
getList()
}
const handleQuery = () => {
formInline.current = 1
getList()
}
const getPagination = ({ page, limit }) => {
formInline.current = page
formInline.size = limit
getList()
}
const handleExport = () => {
console.log('导出数据:', formInline)
}
const goInfo = (row, id) => {
router.push({
name: 'myAssetsAuth',
query: {
pageType: id === 1 ? 'look' : 'change',
type: 3,
id: row.id,
queryData: formInline,
name: 'MyEmail'
}
})
}
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 pagination = document.getElementById('L-pagination')
if (element && header && pagination) {
const elementHeight = element.offsetHeight
const headerHeight = header.offsetHeight
const paginationtHeight = pagination.offsetHeight
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110
}
}
onMounted(() => {
if (Object.keys(route.params).length !== 0) {
Object.assign(formInline, route.params)
} else {
formInline.current = 1
formInline.size = 20
}
getList()
cancalDebounce()
window.addEventListener('resize', cancalDebounce)
})
onUnmounted(() => {
window.removeEventListener('resize', cancalDebounce)
})
</script>

@ -1,378 +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="queryFormRef"
:model="formInline"
size="default"
class="demo-form-inline"
>
<el-row>
<el-col :span="7">
<el-form-item
label="系统名称:"
prop="xtmc"
>
<el-input
v-model="formInline.xtmc"
placeholder="请输入"
style="width: 95%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item
label="系统类型:"
prop="xtlx"
>
<el-select
v-model="formInline.xtlx"
placeholder="请选择系统类型"
style="width: 95%"
>
<el-option
v-for="dict in zc_xtlx"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item
label="系统状态:"
prop="xtzt"
>
<el-select
v-model="formInline.xtzt"
placeholder="请选择系统状态"
>
<el-option
v-for="dict in zc_xtzt"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="3"
style="text-align: right"
>
<el-form-item class="unit-form">
<el-button @click="resetQuery"></el-button>
<el-button
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<span class="search-title-span">资产列表</span>
<el-row
:gutter="10"
class="mb8"
>
<el-col :span="1.5">
<el-button
type="warning"
plain
:icon="Download"
@click="handleExport"
>导出</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
:icon="Plus"
size="default"
@click="handleAdd"
>新增资产</el-button
>
</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"
width="200px"
prop="xtmc"
align="center"
/>
<el-table-column
label="系统类型"
key="xtlx"
prop="xtlx"
align="center"
>
<template #default="scope">
<dict-tag
:options="zc_xtlx"
:value="scope.row.xtlx"
/>
</template>
</el-table-column>
<el-table-column
label="单位名称"
key="dwmc"
prop="dwmc"
align="center"
/>
<el-table-column
label="新增时间"
key="createTime"
prop="createTime"
align="center"
/>
<el-table-column
label="系统状态"
key="status"
prop="status"
class-name="table-status"
align="center"
>
<template #default="scope">
<span
v-if="scope.row.xtzt == 1"
style="color: #16b771"
>
已安装
</span>
<span
v-else-if="scope.row.xtzt == 2"
style="color: #f58a0c"
>
测试中
</span>
<span
v-else-if="scope.row.xtzt == 3"
style="color: #1485ef"
>
使用中
</span>
<span
v-else-if="scope.row.xtzt == 4"
style="color: #29a07a"
>
维护中
</span>
<span
v-else-if="scope.row.xtzt == 5"
style="color: #f50c0c"
>
关停
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template #default="scope">
<div
style="
display: flex;
align-items: center;
justify-content: center;
"
>
<div
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row, 1)"
>
<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 ||
scope.row.auditState == 2 ||
scope.row.xtzt == '5'
"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="goInfo(scope.row, 2)"
>
<img
src="@/assets/images/edit.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px"
>编辑</span
>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="formInline.current"
:limit="formInline.size"
@pagination="getPagination"
:current-page.sync="formInline.current"
></my-pagination>
</main>
</div>
</template>
<script setup>
import { ref, onMounted, onUnmounted } from "vue";
import { useRouter, useRoute } from "vue-router";
import myPagination from "@/views/components/Pagination/index.vue";
import { assetUnit } from "@/api/auditPagesApi/index";
import { Download, Plus } from "@element-plus/icons-vue";
const router = useRouter();
const route = useRoute();
const { proxy } = getCurrentInstance();
const { zc_xtzt, zc_xtlx } = proxy.useDict(
"zc_xtzt",
"zc_xtlx"
);
const queryFormRef = ref(null);
const formInline = ref({
xtmc: "",
xtlx: "",
xtzt: "",
current: 1,
size: 10,
});
const total = ref(0);
const tableData = ref([]);
const loading = ref(false);
const tabHeader = ref(undefined);
const getList = async () => {
try {
loading.value = true;
const res = await assetUnit("get", formInline.value);
tableData.value = res.data.records;
total.value = res.data.total;
} catch (error) {
console.error(error);
} finally {
loading.value = false;
}
};
const resetQuery = () => {
queryFormRef.value?.resetFields();
handleQuery();
};
const handleQuery = () => {
formInline.value.current = 1;
getList();
};
const getPagination = (pages) => {
formInline.value.current = pages.page;
formInline.value.size = pages.limit;
getList();
};
const handleExport = () => {
// Implement export functionality
console.log("Export functionality to be implemented");
};
const goInfo = (row, id) => {
router.push({
name: "myAssetsAuth",
query: {
pageType: id === 1 ? "look" : "change",
type: 0,
id: row.id,
queryData: formInline.value,
name: "MyWebAssets",
},
});
};
const tableRowClassName = ({ row, rowIndex }) => {
return rowIndex % 2 !== 0 ? "evenNumber-row" : "";
};
const cancalDebounce = () => {
const element = document.getElementById("L-size-main");
const header = document.getElementById("L-header");
const pagination = document.getElementById("L-pagination");
if (element && header && pagination) {
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 120;
}
};
onMounted(() => {
if (Object.keys(route.params).length !== 0) {
formInline.value = route.params;
} else {
formInline.value.current = 1;
formInline.value.size = 20;
}
getList();
cancalDebounce();
window.addEventListener("resize", cancalDebounce);
});
onUnmounted(() => {
window.removeEventListener("resize", cancalDebounce);
});
</script>

@ -1,312 +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="queryFormRef"
:model="formInline"
size="mediu"
class="demo-form-inline"
>
<el-row>
<el-col :span="7">
<el-form-item label="移动应用名称:" prop="yymc">
<el-input
v-model="formInline.yymc"
placeholder="请输入移动应用名称"
style="width: 95%;"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="icp备案状态" prop="xtzt">
<el-select
v-model="formInline.xtzt"
placeholder="请选择icp备案状态"
>
<el-option
v-for="dict in app_icp_state"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7" style="text-align: right">
<el-form-item class="unit-form">
<el-button @click="resetQuery"></el-button>
<el-button
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<span class="search-title-span">资产列表</span>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
:icon="Download"
@click="handleExport"
>导出</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
:icon="Plus"
@click="handleAdd"
>新增资产</el-button
>
</el-col>
</el-row>
</div>
<section>
<el-table
v-loading="loading"
:data="tableData"
:height="tabHeader"
:row-class-name="tableRowClassName"
:max-height="tabHeader"
>
<el-table-column
type="index"
width="70"
label="序号"
align="center"
/>
<el-table-column
label="移动应用名称"
key="appName"
prop="appName"
align="center"
/>
<el-table-column
label="所属单位"
key="ssdw"
prop="ssdw"
align="center"
/>
<el-table-column
label="新增时间"
key="createTime"
prop="createTime"
align="center"
/>
<el-table-column
label="icp备案状态"
key="status"
prop="status"
class-name="table-status"
align="center"
>
<template #default="scope">
<span v-if="scope.row.icpState == 1" style="color: #f58a0c">
未备案
</span>
<span v-if="scope.row.icpState == 2" style="color: #16b771">
已备案
</span>
<span v-if="scope.row.icpState == 3" style="color: #1485ef">
非网站系统
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template #default="scope">
<div
style="
display: flex;
align-items: center;
justify-content: center;
"
>
<div
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row, 1)"
>
<img
src="@/assets/images/icon-ck@2x.png"
alt=""
style="width: 20px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px"
>查看</span
>
</div>
<div
v-if="!scope.row.auditState || scope.row.auditState == 2"
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row, 2)"
>
<img
src="@/assets/images/edit.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px"
>编辑</span
>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="formInline.current"
:limit="formInline.size"
@pagination="getPagination"
v-model:current-page="formInline.current"
></my-pagination>
</main>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, onUnmounted } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import { ElMessage } from 'element-plus'
import myPagination from '@/views/components/Pagination/index.vue'
import { assetAppList } from '@/api/auditPagesApi/index'
import { Download, Plus } from "@element-plus/icons-vue";
//
const route = useRoute()
const router = useRouter()
//
const formInline = reactive({
xtzt: '',
yymc: '',
current: 1,
size: 10
})
//
const loading = ref(false)
const total = ref(0)
const tableData = ref([])
const tabHeader = ref(undefined)
//
const { proxy } = getCurrentInstance();
const { app_icp_state } = proxy.useDict(
"app_icp_state"
);
//
const handleAdd = () => {
router.push({
name: 'myAssetsAuth',
query: {
pageType: 'add',
type: 4,
queryData: formInline,
name: 'MyMobileApplication'
}
})
}
const getList = async () => {
loading.value = true
try {
const res = await assetAppList(formInline)
total.value = res.data.total
tableData.value = res.data.records
} finally {
loading.value = false
}
}
const resetQuery = () => {
formInline.xtzt = ''
formInline.yymc = ''
formInline.current = 1
formInline.size = 10
getList()
}
const handleQuery = () => {
formInline.current = 1
getList()
}
const getPagination = ({ page, limit }) => {
formInline.current = page
formInline.size = limit
getList()
}
const handleExport = () => {
console.log('导出数据:', formInline)
}
const goInfo = (row, id) => {
router.push({
name: 'myAssetsAuth',
query: {
pageType: id === 1 ? 'look' : 'change',
type: 4,
id: row.id,
queryData: formInline,
name: 'MyMobileApplication'
}
})
}
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 pagination = document.getElementById('L-pagination')
if (element && header && pagination) {
const elementHeight = element.offsetHeight
const headerHeight = header.offsetHeight
const paginationtHeight = pagination.offsetHeight
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110
}
}
onMounted(() => {
if (Object.keys(route.params).length !== 0) {
Object.assign(formInline, route.params)
} else {
formInline.current = 1
formInline.size = 20
}
getList()
cancalDebounce()
window.addEventListener('resize', cancalDebounce)
})
onUnmounted(() => {
window.removeEventListener('resize', cancalDebounce)
})
</script>

@ -1,368 +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="queryFormRef"
:model="formInline"
size="default"
class="demo-form-inline"
>
<el-row>
<el-col :span="7">
<el-form-item
label="公众号名称:"
prop="gzhmc"
>
<el-input
v-model="formInline.gzhmc"
placeholder="请输入公众号名称"
style="width: 95%"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item
label="公众号状态:"
prop="xtzt"
>
<el-select
v-model="formInline.xtzt"
placeholder="请选择公众号状态"
>
<el-option
v-for="dict in gzh_state"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col
:span="7"
style="text-align: right"
>
<el-form-item class="unit-form">
<el-button @click="resetQuery"></el-button>
<el-button
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<span class="search-title-span">资产列表</span>
<el-row
:gutter="10"
class="mb8"
>
<el-col :span="1.5">
<el-button
type="warning"
plain
:icon="Download"
@click="handleExport"
>导出</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
:icon="Plus"
@click="handleAdd"
>新增资产</el-button
>
</el-col>
</el-row>
</div>
<section>
<el-table
v-loading="loading"
:data="tableData"
:height="tabHeader"
:row-class-name="tableRowClassName"
:max-height="tabHeader"
>
<el-table-column
type="index"
width="70"
label="序号"
align="center"
/>
<el-table-column
label="公众号名称"
key="gzhmc"
prop="gzhmc"
align="center"
/>
<el-table-column
label="所属单位"
key="ssdw"
prop="ssdw"
align="center"
/>
<el-table-column
label="新增时间"
key="createTime"
prop="createTime"
align="center"
/>
<el-table-column
label="平台类型"
key="ptlx"
prop="ptlx"
align="center"
>
<template #default="scope">
<dict-tag
:options="sys_ptlx_type"
:value="scope.row.ptlx"
/>
</template>
</el-table-column>
<el-table-column
label="公众号状态"
key="status"
prop="status"
class-name="table-status"
align="center"
>
<template #default="scope">
<span
v-if="scope.row.gzhzt == 1"
style="color: #16b771"
>正常</span
>
<span
v-else-if="scope.row.gzhzt == 2"
style="color: #f58a0c"
>注销</span
>
<span
v-else-if="scope.row.gzhzt == 3"
style="color: #1485ef"
>迁移</span
>
<span
v-else-if="scope.row.gzhzt == 4"
style="color: #29a07a"
>受限</span
>
<span
v-else-if="scope.row.gzhzt == 5"
style="color: #f50c0c"
>违规</span
>
<span
v-else-if="scope.row.gzhzt == 6"
style="color: #f58a0c"
>未知</span
>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template #default="scope">
<div
style="
display: flex;
align-items: center;
justify-content: center;
"
>
<div
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row, 1)"
>
<img
src="@/assets/images/icon-ck@2x.png"
alt=""
style="width: 20px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px"
>查看</span
>
</div>
<div
v-if="!scope.row.auditState || scope.row.auditState == 2"
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row, 2)"
>
<img
src="@/assets/images/edit.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px"
>编辑</span
>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="formInline.current"
:limit="formInline.size"
@pagination="getPagination"
v-model:current-page="formInline.current"
></my-pagination>
</main>
</div>
</template>
<script setup>
import { ref, onMounted, onUnmounted } from "vue";
import { useRoute, useRouter } from "vue-router";
import myPagination from "@/views/components/Pagination/index.vue";
import { assetOfficialAccountList } from "@/api/auditPagesApi/index";
import { Download, Plus } from "@element-plus/icons-vue";
const { proxy } = getCurrentInstance();
const { gzh_state, sys_ptlx_type } = proxy.useDict(
"gzh_state",
"sys_ptlx_type"
);
const router = useRouter();
const route = useRoute();
const queryFormRef = ref(null);
const formInline = ref({
gzhmc: "",
xtzt: "",
current: 1,
size: 10,
});
const loading = ref(false);
const tableData = ref([]);
const total = ref(0);
const tabHeader = ref(undefined);
//
const getList = async () => {
try {
loading.value = true;
const res = await assetOfficialAccountList(formInline.value);
tableData.value = res.data.records;
total.value = res.data.total;
} catch (error) {
console.error("获取列表失败:", error);
} finally {
loading.value = false;
}
};
//
const resetQuery = () => {
queryFormRef.value?.resetFields();
formInline.value.current = 1;
getList();
};
//
const handleQuery = () => {
formInline.value.current = 1;
getList();
};
//
const getPagination = (pages) => {
formInline.value.current = pages.page;
formInline.value.size = pages.limit;
getList();
};
//
function handleExport() {
proxy.download(
"/tc/assetOfficialAccount/export",
{
...formInline.value,
},
`公众号资产${new Date().getTime()}.xlsx`
);
}
function handleAdd() {
router.push({
name: "myAssetsAuth",
query: {
pageType: "add",
type: 2,
},
});
}
// /
const goInfo = (row, id) => {
router.push({
name: "myAssetsAuth",
query: {
pageType: id === 1 ? "look" : "change",
type: 2,
id: row.id,
queryData: formInline.value,
name: "MyOfficialAccount",
},
});
};
//
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 pagination = document.getElementById("L-pagination");
if (element && header && pagination) {
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110;
}
};
onMounted(() => {
if (Object.keys(route.params).length !== 0) {
formInline.value = route.params;
}
getList();
cancalDebounce();
window.addEventListener("resize", cancalDebounce);
});
onUnmounted(() => {
window.removeEventListener("resize", cancalDebounce);
});
</script>

@ -1,321 +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="queryForm"
:model="formInline"
size="default"
class="demo-form-inline"
label-width="100px"
>
<el-row>
<el-col :span="7">
<el-form-item label="小程序名称:" prop="xcxmc">
<el-input
v-model="formInline.xcxmc"
placeholder="请输入小程序名称"
style="width: 95%;"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="小程序状态:" prop="xtzt">
<el-select
v-model="formInline.xtzt"
placeholder="请选择小程序状态"
>
<el-option
v-for="dict in gzh_state"
:key="dict.value"
:label="dict.label"
:value="dict.value"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="7" style="text-align: right">
<el-form-item class="unit-form">
<el-button @click="resetQuery"></el-button>
<el-button
type="primary"
@click="handleQuery"
>查询</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<div class="search-title">
<span class="search-title-span">资产列表</span>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
:icon="Download"
@click="handleExport"
>导出</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
:icon="Plus"
@click="handleAdd"
>新增资产</el-button
>
</el-col>
</el-row>
</div>
<section>
<el-table
v-loading="loading"
:data="tableData"
:height="tabHeader"
:row-class-name="tableRowClassName"
:max-height="tabHeader"
>
<el-table-column
type="index"
width="70"
label="序号"
align="center"
/>
<el-table-column
label="小程序名称"
key="xcxmc"
prop="xcxmc"
align="center"
/>
<el-table-column
label="所属单位"
key="ssdw"
prop="ssdw"
align="center"
/>
<el-table-column
label="小程序状态"
key="state"
prop="state"
class-name="table-status"
align="center"
>
<template #default="scope">
<span v-if="scope.row.state == 1" style="color: #16b771">
正常
</span>
<span v-if="scope.row.state == 2" style="color: #f58a0c">
注销
</span>
<span v-if="scope.row.state == 3" style="color: #1485ef">
迁移
</span>
<span v-if="scope.row.state == 4" style="color: #29a07a">
受限
</span>
<span v-if="scope.row.state == 5" style="color: #f50c0c">
违规
</span>
<span v-if="scope.row.state == 6" style="color: #f58a0c">
未知
</span>
</template>
</el-table-column>
<el-table-column
label="操作"
prop="userId"
class-name="table-operation"
align="center"
>
<template #default="scope">
<div
style="
display: flex;
align-items: center;
justify-content: center;
"
>
<div
style="display: flex; align-items: center; cursor: pointer"
@click="goInfo(scope.row, 1)"
>
<img
src="@/assets/images/icon-ck@2x.png"
alt=""
style="width: 20px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px"
>查看</span
>
</div>
<div
v-if="!scope.row.auditState || scope.row.auditState == 2"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="goInfo(scope.row, 2)"
>
<img
src="@/assets/images/edit.png"
alt=""
style="width: 15px; margin-right: 5px"
/>
<span
class="look-info"
style="color: #1485ef; margin-right: 15px"
>编辑</span
>
</div>
</div>
</template>
</el-table-column>
</el-table>
</section>
<my-pagination
id="L-pagination"
:total="total"
:page="formInline.current"
:limit="formInline.size"
@pagination="getPagination"
v-model:current-page="formInline.current"
></my-pagination>
</main>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, onUnmounted } from 'vue'
import { useRoute, useRouter } from 'vue-router'
import myPagination from '@/views/components/Pagination/index.vue'
import { miniProgramsList } from '@/api/auditPagesApi/index'
import { Download, Plus } from "@element-plus/icons-vue";
const route = useRoute()
const router = useRouter()
//
const formInline = reactive({
xtzt: '',
xcxmc: '',
current: 1,
size: 10
})
//
const total = ref(0)
const tableData = ref([])
const loading = ref(false)
const tabHeader = ref(undefined)
const queryForm = ref(null)
const { proxy } = getCurrentInstance();
const { gzh_state } = proxy.useDict(
"gzh_state"
);
//
const handleAdd = () => {
router.push({
name: 'myAssetsAuth',
query: {
pageType: 'add',
type: 1,
queryData: formInline,
name: 'MyProgram'
}
})
}
const getList = async () => {
loading.value = true
try {
const res = await miniProgramsList(formInline)
total.value = res.data.total
tableData.value = res.data.records
} finally {
loading.value = false
}
}
const resetQuery = () => {
if (queryForm.value) {
queryForm.value.resetFields()
}
handleQuery()
}
const handleQuery = () => {
formInline.current = 1
getList()
}
const getPagination = ({ page, limit }) => {
formInline.current = page
formInline.size = limit
getList()
}
const handleExport = () => {
console.log('导出数据:', formInline)
}
const goInfo = (row, id) => {
router.push({
name: 'myAssetsAuth',
query: {
pageType: id === 1 ? 'look' : 'change',
type: 1,
id: row.id,
queryData: formInline,
name: 'MyProgram'
}
})
}
//
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 pagination = document.getElementById('L-pagination')
if (element && header && pagination) {
const elementHeight = element.offsetHeight
const headerHeight = header.offsetHeight
const paginationtHeight = pagination.offsetHeight
tabHeader.value = elementHeight - headerHeight - paginationtHeight - 110
}
}
onMounted(() => {
if (Object.keys(route.params).length !== 0) {
Object.assign(formInline, route.params)
} else {
formInline.current = 1
formInline.size = 20
}
getList()
cancalDebounce()
window.addEventListener('resize', cancalDebounce)
})
onUnmounted(() => {
window.removeEventListener('resize', cancalDebounce)
})
</script>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,225 +0,0 @@
<template>
<div class="audit-pages-box audit-pages-box-two" id="L-size-main">
<div class="content-info content-info-two" id="L-header">
<div class="info-title">任务信息</div>
<div class="top-info">
<el-row class="top-row">
<el-col :span="8">
任务编号<span>20240101001</span>
</el-col>
<el-col :span="8">
任务名称<span>XXXXX资产核查任务</span>
</el-col>
<el-col :span="8">
任务状态<span>待审核</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
任务期限<span>2024-11-11 09:00:00</span>
</el-col>
<el-col :span="8">
任务下发时间<span>2024-11-11 09:00:00</span>
</el-col>
</el-row>
</div>
</div>
<main class="renwuxiangqing">
<div class="info-cut-off-rule-my" id="L-tab">
<div class="info-title">资产核查</div>
</div>
<div class="info-bottom-box">
<el-form :inline="true" :model="formInline" size="small" class="demo-form-inline">
<el-row>
<el-col :span="7">
<el-form-item label="资产名称:">
<el-input v-model="formInline.name" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="核查单位:">
<el-select v-model="formInline.unit" placeholder="请选择">
<el-option label="item.label" value="item.value">
</el-option>
<!-- <el-option
v-for="dict in dict.type.bms_approval_status"
:key="dict.value"
:label="dict.label"
:value="dict.value">
</el-option> -->
</el-select>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="审核状态:">
<el-select v-model="formInline.status" placeholder="请选择">
<el-option label="item.label" value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<el-button size="default" type="primary" @click="handleQuery()"></el-button>
<el-button size="default" @click="resetQuery()"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<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="name" prop="name" align="center" />
<el-table-column label="资产类型" key="type" prop="type" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
</template> -->
</el-table-column>
<el-table-column label="核查单位" key="unit" prop="unit" align="center" />
<el-table-column label="审核状态" key="status" width="200px" prop="status" class-name="table-status" align="center">
<template slot-scope="scope">
<span v-if="scope.row.status === 0" style="color: #a4c86c;">
已核查
</span>
<span v-if="scope.row.status === 1" style="color: #F43147;">
已关停
</span>
<span v-if="scope.row.status === 2" style="color: #F59A23;">
未核查
</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 v-if="scope.row.status == 2" style="display: flex;align-items: center;">
<img src="@/assets/images/icon-shenhe@2x.png" alt="" style="width: 15px;margin-right: 5px;">
<span class="del-info" @click="delInfo(scope.row)" style="color: #1485EF;cursor: pointer;">审核</span>
</div>
<div style="display: flex;align-items: center;" v-else>
<img src="@/assets/images/icon-ck@2x.png" alt="" style="width: 20px;margin-right: 5px;">
<span class="look-info" @click="goInfo(scope.row)" style="color: #1485EF;cursor: pointer;">查看</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>
</div>
</main>
</div>
</template>
<script>
import myPagination from "@/views/components/Pagination/index.vue"
export default {
components:{myPagination},
data() {
return {
formInline:{
unit:"",
type:"",
status:"",
},
total:0,
pagination:{
current:1,
size:10,
},
tableData:[
{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:0,
},{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:1,
},{
number:20230001,
name:"XXX资产",
type:"1类资产",
unit:"太仓市XXX局",
status:2,
},
],
loading:false,
tabHeader: undefined,
}
},
mounted(){
this.getList();
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods:{
//
resetQuery(){
this.pagination = {
current: 1,
size: 10,
}
this.formInline = {
unit:"",
type:"",
status:"",
}
this.getList();
},
//
handleQuery(){
this.pagination = {
current: 1,
size: 10,
}
this.pagination = { ...this.pagination,...this.formInline };
this.getList();
},
//
getPagination(){
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
this.getList();
},
goAudit(){
this.$router.push({name: 'mytaskAuditInfo',query: {
pageType: "info",
}})
},
getList(){},
// 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 tab = document.getElementById('L-tab'); // ID
const pagination = document.getElementById('L-pagination'); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const tabHeight = tab.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
this.tabHeader = elementHeight - headerHeight - paginationtHeight - tabHeight - 140;
}
},
}
</script>

@ -1,375 +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" :model="formInline" size="small" class="demo-form-inline">
<el-row>
<el-col :span="7">
<el-form-item label="任务名称:">
<el-input v-model="formInline.taskName" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="7">
<el-form-item label="任务编号:">
<el-input v-model="formInline.id" placeholder="请输入"></el-input>
</el-form-item>
</el-col> -->
<el-col :span="7">
<el-form-item label="任务状态:">
<el-select v-model="formInline.taskStatus" placeholder="请选择">
<el-option label="已关闭" value="0">
</el-option>
<el-option label="进行中" value="1">
</el-option>
<el-option label="正常完成" value="2">
</el-option>
<el-option label="超期完成" value="3">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item class="unit-form">
<el-button size="default" @click="resetQuery('queryFrom')"></el-button>
<el-button size="default" type="primary" @click="handleQuery('queryFrom')"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<main>
<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="id" width="200px" prop="id" align="center" /> -->
<el-table-column label="任务名称" key="taskName" prop="taskName" align="center" />
<el-table-column label="任务下发时间" key="taskTime" prop="taskTime" align="center">
<!-- <template slot-scope="scope">
<dict-tag :options="dict.type.project_middle_type" :value="scope.row.projectMiddleType"/>
</template> -->
</el-table-column>
<el-table-column label="任务期限" key="taskDeadline" prop="taskDeadline" align="center" />
<!-- <el-table-column label="任务完成时间" key="taskFinishTime" prop="taskFinishTime" align="center" /> -->
<el-table-column label="任务状态" key="taskStatus" width="200px" prop="taskStatus" class-name="table-status"
align="center">
<template slot-scope="scope">
<span v-if="scope.row.taskStatus == 0" style="color: #F56C6C;">
已关闭
</span>
<span v-if="scope.row.taskStatus == 1" style="color: #E6A23C;">
进行中
</span>
<span v-if="scope.row.taskStatus == 2" style="color: #67C23A;">
正常完成
</span>
<span v-if="scope.row.taskStatus == 3" style="color: #67C23A;">
超期完成
</span>
<span v-if="scope.row.taskStatus == 4" style="color: #F56C6C;">
审核不通过
</span>
<span v-if="scope.row.taskStatus == 5" style="color: #F56C6C;">
审核驳回
</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;cursor: pointer;">查看</span>
</div>
<!-- v-if="scope.row.taskStatus == 1" -->
<div style="display: flex;align-items: center;cursor: pointer;margin-left: 10px;"
@click="delInfo(scope.row)" v-if="scope.row.taskStatus == 1 && scope.row.taskStatus != 0">
<img src="@/assets/images/icon-shenhe@2x.png" alt="" style="width: 15px;margin-right: 5px;">
<span class="del-info" style="color: #1485EF;cursor: pointer;">开始核查</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="新增任务" @close="importClose" ref="taskDialog" class="taskDialogBox" width="40%">
<el-row>
<el-col :span="18">
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px">
<el-form-item label="任务名称" prop="taskName">
<el-input v-model="ruleForm.taskName" placeholder="请输入单位名称"></el-input>
</el-form-item>
<el-form-item label="核查单位" prop="dwmc" class="select-box">
<el-col :span="24">
<el-select v-model="ruleForm.dwmc" placeholder="请选择活动区域" multiple collapse-tags>
</el-select>
</el-col>
<el-col class="btn-box">
<el-button type="primary" @click="addliebiao"><i class="el-icon-s-unfold"></i></el-button>
</el-col>
</el-form-item>
<el-form-item label="任务期限" prop="taskDeadline">
<el-date-picker type="date" placeholder="选择日期" v-model="ruleForm.taskDeadline" style="width: 100%;"
value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item class="newTask-form-item">
<el-button @click="resetForm('ruleForm')"></el-button>
<el-button type="primary" @click="submitForm('ruleForm')"></el-button>
</el-form-item>
</el-form>
</el-col>
<el-col :span="6"></el-col>
</el-row>
</my-dialog>
<div class="newTask-liebiao">
<my-dialog title="单位列表" ref="liebiaoDialog" class="taskDialogBox" width="80%">
<danweiList ref="danweiList" @adddanweilist="adddanweilist" @liebiaoClose="liebiaoClose"></danweiList>
</my-dialog>
</div>
</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 } from "@/api/renwuApi/index.js"
export default {
// dicts: ['jjh_project_type', 'bms_approval_status', "project_middle_type", "project_small_type", "project_categories"],
components: { myPagination, myDialog, danweiList },
data() {
return {
formInline: {
name: "",
type: "",
time: [],
number: "",
status: "",
},
total: 0,
pagination: {
current: 1,
size: 10,
},
tableData: [
],
loading: false,
tabHeader: undefined,
ruleForm: {
taskName: "",
dwmc: [],
taskDeadline: "",
},
rules: {
taskName: [
{ required: true, message: '请输入', trigger: 'blur' },
],
dwmc: [
{ required: true, message: '请选择', trigger: 'change' }
],
taskDeadline: [
{ required: true, message: '请选择日期', trigger: 'change' }
],
},
tabclicklist: []
}
},
mounted() {
localStorage.removeItem("activeName")
if (localStorage.getItem('ismypagination')) {
if (JSON.parse(localStorage.getItem('ismypagination')).isfanhui) {
this.formInline = JSON.parse(localStorage.getItem('ismypagination'))
this.handleQuery()
} else {
localStorage.removeItem("ismypagination")
}
}
localStorage.removeItem("ismypaginationTow")
this.getInfo();
this.cancalDebounce();
window.addEventListener('resize', this.cancalDebounce);
},
destroyed() {
window.removeEventListener('resize', this.cancalDebounce);
},
methods: {
//
resetForm() {
this.ruleForm = {
dwmc: [],
taskName: "",
taskDeadline: "",
}
this.$refs.taskDialog.close()
this.tabclicklist = []
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.ruleForm.dwmc = this.ruleForm.dwmc.join(",")
addassetTaskadd(this.ruleForm).then(res => {
this.resetForm()
this.getInfo();
})
setTimeout(() => {
this.ruleForm.dwmc = this.ruleForm.dwmc.split(",")
}, 0);
} else {
console.log('error submit!!');
return false;
}
});
},
adddanweilist(val) {
if (val) {
let list = val
this.ruleForm.dwmc = []
list.forEach(element => {
this.ruleForm.dwmc.push(element.nickName)
});
} else {
this.ruleForm.dwmc = []
}
this.tabclicklist = val
},
//
getInfo() {
this.loading = true;
if (this.$store.state.user.roles.includes("unit")) {
this.pagination.dwmc = this.$store.state.user.useer.nickName
}
getassetTask(this.pagination).then(res => {
this.loading = false;
this.total = res.data.total;
this.tableData = res.data.records;
})
},
//
resetQuery() {
this.formInline = {
name: "",
type: "",
time: [],
number: "",
status: "",
}
this.pagination = {
current: 1,
size: 10,
}
localStorage.removeItem("ismypagination")
this.getInfo();
},
//
addliebiao() {
this.$refs.liebiaoDialog.open()
if (this.tabclicklist) {
setTimeout(() => {
this.$refs.danweiList.dakai(this.tabclicklist)
}, 100);
}
},
liebiaoClose() {
this.$refs.liebiaoDialog.close()
},
//
handleQuery() {
this.pagination = {
current: 1,
size: 10
}
if (this.formInline.time.length > 0) {
this.formInline.begainTime = this.formInline.time[0]
this.formInline.endTime = this.formInline.time[1]
}
this.pagination = { ...this.pagination, ...this.formInline };
this.formInline.isfanhui = false
localStorage.setItem("ismypagination", JSON.stringify(this.formInline))
this.getInfo();
},
//
getPagination(pages) {
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
this.getInfo();
},
//
handleImport() { },
//
handleExport() { },
//
handleAdd() {
this.$refs.taskDialog.open()
},
//
importClose() {
this.resetForm()
},
//
goInfo(row) {
getassetTaskid(row.id)
this.$router.push({
name: 'mytaskInfo', query: {
pageType: "look",
id: row.id,
dwmc: row.dwmc
}
})
},
delInfo(row) {
//taskAudit
console.log(row);
this.$router.push({
name: 'mytaskInfo', query: {
pageType: "info",
id: row.id,
dwmc: row.dwmc
}
})
},
//
edit() {
},
//
// 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 - 110;
}
},
}
</script>
<style lang="scss" scoped>
.el-icon-s-unfold {
font-size: 16px;
}
</style>

@ -1,716 +0,0 @@
<template>
<!-- 任务核查 -->
<div class="L-task-info">
<div class="info-left info-left-two" id="L-size-main">
<div class="content-info content-info-two" id="L-header">
<div class="info-title">任务详情</div>
<el-button
type="primary"
@click="sendBack"
class="fanhuipiaofu"
size="default"
>返回</el-button
>
<div class="teshu-top-info">
<div class="top-info">
<el-row class="top-row">
<el-col :span="8">
任务下发时间<span>{{ titleInfoObj.taskTime }}</span>
</el-col>
<el-col :span="8">
任务名称<span>{{ titleInfoObj.taskName }}</span>
</el-col>
<el-col :span="8">
任务状态<span>{{ taskstatus(titleInfoObj.taskStatus) }}</span>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
任务期限<span>{{ titleInfoObj.taskDeadline }}</span>
</el-col>
<el-col :span="16">
核查资产类型<span>{{ listTow.join(",") }}</span>
</el-col>
</el-row>
</div>
</div>
</div>
<main class="renwuxiangqing">
<div class="info-cut-off-rule-my" id="L-tab">
<div class="info-title">资产信息</div>
</div>
<div class="info-bottom-box">
<el-form
:inline="true"
:model="formInline"
size="small"
class="demo-form-inline"
v-if="index == 1"
>
<el-row>
<!-- <el-col :span="7">
<el-form-item label="核查单位:">
<el-input v-model="formInline.dwmc" placeholder="请输入"></el-input>
</el-form-item>
</el-col> -->
<!-- <el-col :span="9">
<el-form-item label="系统类型:">
<el-select v-model="formInline.xtlx" placeholder="请选择">
<el-option v-for="dict in dict.type.zc_xtlx" :key="dict.label" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="7">
<el-form-item label="系统名称:">
<el-input
v-model="formInline.xtmc"
placeholder="请输入"
></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="审核状态:">
<el-select v-model="formInline.status" placeholder="请选择">
<el-option label="未核查" value="0"> </el-option>
<el-option label="已核查" value="1"> </el-option>
<el-option label="审核通过" value="3"> </el-option>
<el-option label="审核不通过" value="4"> </el-option>
<el-option label="已关停" value="5"> </el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-button size="default" type="primary" @click="handleQuery()"
>查询</el-button
>
<el-button size="default" @click="resetQuery()"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-form
:inline="true"
:model="formInlineTwo"
size="small"
class="demo-form-inline"
v-if="index == 2"
>
<el-row>
<el-col :span="7">
<el-form-item label="单位名称:">
<el-input
v-model="formInlineTwo.unitName"
placeholder="请输入"
></el-input>
<!-- <el-select v-model="formInline.unit" placeholder="请选择"> -->
<!-- <el-option
v-for="dict in dict.type.bms_approval_status"
:key="dict.value"
:label="dict.label"
:value="dict.value">
</el-option> -->
<!-- </el-select> -->
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-button size="default" type="primary" @click="handleQuery()"
>查询</el-button
>
<el-button size="default" @click="resetQuery()"></el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<section v-if="index == 1">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane
:label="item.conent"
:name="item.lable"
:xtmcName="item.xtmcName"
v-for="item in chanckListTow"
></el-tab-pane>
</el-tabs>
<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="id" width="200px" prop="id" align="center" /> -->
<el-table-column :label="xtmcName" prop="xtmc" align="center" />
<!-- <el-table-column label="系统类型" key="xtlx" prop="xtlx" align="center">
<template slot-scope="scope">
<dict-tag :options="dict.type.zc_xtlx" :value="scope.row.xtlx" />
</template>
</el-table-column> -->
<el-table-column label="核查单位" prop="zcdwmc" align="center" />
<el-table-column
label="单位核查时间"
prop="updateTime"
align="center"
/>
<el-table-column
label="审核状态"
width="200px"
prop="status"
class-name="table-status"
align="center"
>
<template slot-scope="scope">
<span v-if="scope.row.status == 0" style="color: #e6a23c">
未核查
</span>
<span v-if="scope.row.status == 1" style="color: #67c23a">
已核查
</span>
<span v-if="scope.row.status == 3" style="color: #67c23a">
审核通过
</span>
<span v-if="scope.row.status == 4" style="color: #f56c6c">
审核不通过
</span>
<span v-if="scope.row.status == 5" style="color: #f56c6c">
已关停
</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(1, scope.row)"
v-if="
(scope.row.status != 4 && scope.row.status != 0) ||
$route.query.pageType == 'look' ||
$route.meta.pageType == 'look'
"
>
<img
src="@/assets/images/icon-ck@2x.png"
alt=""
style="width: 20px; margin-right: 5px"
/>
<span class="look-info" style="color: #1485ef">查看</span>
</div>
<!-- v-if="scope.row.taskStatus == 1" -->
<div
v-if="
($route.query.pageType == 'info' ||
$route.meta.pageType == 'info') &&
scope.row.status != 3 &&
scope.row.status != 5 &&
scope.row.status != 1
"
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 10px;
"
@click="goInfo(2, 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>
<!-- scope.row.status == 4 -->
<div
style="
display: flex;
align-items: center;
cursor: pointer;
margin-left: 5px;
"
@click="goInfo(3, scope.row)"
v-show="scope.row.btgyy"
>
<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>
</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>
</div>
</main>
</div>
<div
class="info-right"
v-if="$route.query.pageType == 'look' || $route.meta.pageType == 'look'"
>
<div class="info-title">任务流程节点</div>
<div class="timeline">
<div class="timeline-items" v-for="(item, index) in timeLineData">
<div class="left-box">
<img class="main-img" :src="returnidimg(item.assetName)" alt="" />
<!-- <img class="main-img" v-if="item.status == 2" src="" alt="">
<img class="main-img" v-if="item.status == 3" src="" alt="">
<img class="main-img" v-if="item.status == 4" src="" alt=""> -->
<img
class="icon-jt"
v-if="index + 1 != timeLineData.length"
src="@/assets/images/icon-jt@2x.png"
alt=""
/>
</div>
<div class="right-box">
<span class="span-title">{{ item.assetName }}:</span>
<span class="span-time">{{ item.xfTime }}</span>
</div>
</div>
</div>
</div>
<my-dialog
title="查看原因"
ref="liebiaoDialog"
@close="importClose"
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 { getassetTaskid, geassetTaskcHc } from "@/api/renwuApi/index.js";
import { assetLcpage } from "@/api/renwuApi/index.js";
import myDialog from "@/views/components/myDialog/index.vue";
export default {
dicts: ["zc_xtlx"],
components: { myPagination, myDialog },
data() {
return {
index: 1,
formInline: {},
formInlineTwo: {
unitName: "",
},
total: 0,
pagination: {
current: 1,
size: 10,
},
tableData: [],
tableDataTwo: [],
loading: false,
tabHeader: undefined,
timeLineData: [],
titleInfoObj: {},
chakanyuanyin: "",
activeName: "0",
xtmcName: "系统名称",
chanckList: [
{
lable: "0",
conent: "web资产",
xtmcName: "系统名称",
},
{
lable: "1",
conent: "小程序资产",
xtmcName: "小程序名称",
},
{
lable: "2",
conent: "公众号资产",
xtmcName: "公众号名称",
},
{
lable: "3",
conent: "电子邮件资产",
xtmcName: "电子邮箱后缀",
},
{
lable: "4",
conent: "移动应用程序资产",
xtmcName: "移动应用程序名称",
},
],
chanckListTow: [],
listTow: [],
};
},
mounted() {
this.cancalDebounce();
window.addEventListener("resize", this.cancalDebounce);
this.titleInfo();
this.assetLcpageList();
if (localStorage.getItem("ismypaginationTow")) {
console.log(JSON.parse(localStorage.getItem("ismypaginationTow")));
if (JSON.parse(localStorage.getItem("ismypaginationTow")).isfanhuiTow) {
this.formInline = JSON.parse(localStorage.getItem("ismypaginationTow"));
console.log(99999, this.formInline);
this.titleInfo();
} else {
console.log(99999, this.formInline);
localStorage.removeItem("ismypaginationTow");
}
}
},
destroyed() {
window.removeEventListener("resize", this.cancalDebounce);
},
methods: {
sendBack() {
if (localStorage.getItem("ismypagination")) {
let formInline = JSON.parse(localStorage.getItem("ismypagination"));
formInline.isfanhui = true;
localStorage.setItem("ismypagination", JSON.stringify(formInline));
}
this.$router.go(-1);
},
handleClick(tab, event) {
console.log(tab.name);
// this.formInline = {
// }
this.activeName = tab.name;
this.xtmcName = tab.$attrs.xtmcName;
localStorage.setItem("activeName", this.activeName);
this.handleQuery();
},
//
returnidimg(iswenzi) {
// let obj = {
// '':require('@/assets/images/rwxf.png'),
// "":require('@/assets/images/wctj.png'),
// ",":require('@/assets/images/shbh.png'),
// "":require('@/assets/images/shtg.png'),
// }
let listsna = [
{
name: "下发",
imgdata: require("@/assets/images/rwxf.png"),
},
{
name: "提交",
imgdata: require("@/assets/images/wctj.png"),
},
{
name: "不通过",
imgdata: require("@/assets/images/shbh.png"),
},
{
name: "审核通过",
imgdata: require("@/assets/images/shtg.png"),
},
{
name: "驳回",
imgdata: require("@/assets/images/shbh.png"),
},
];
let item = listsna.find((item) => iswenzi.includes(item.name));
if (item) {
return item.imgdata;
} else {
return require("@/assets/images/wctj.png");
}
},
assetLcpageList() {
let obj = {
taskId: this.$route.query.id || this.$route.meta.id,
};
assetLcpage(obj).then((res) => {
this.timeLineData = res.data;
});
},
importClose() {},
goInfo(type, row) {
//
if (type == 1) {
this.$router.push({
name: "mytaskAuditInfo",
query: {
pageType: "look",
taskId: row.taskId,
assetId: row.id,
type: this.activeName,
},
});
}
//
if (type == 2) {
this.$router.push({
name: "mytaskAuditInfo",
query: {
pageType: "change",
taskId: row.taskId,
assetId: row.id,
type: this.activeName,
},
});
}
//
if (type == 3) {
this.chakanyuanyin = row.btgyy;
this.$refs.liebiaoDialog.open();
}
// getassetTaskid(row.id)
},
taskstatus(id) {
if (id) {
let obj = {
0: "已关闭",
1: "进行中",
2: "正常完成",
3: "超期完成",
4: "正常完成",
5: "审核驳回",
};
return obj[id];
} else {
return "-";
}
},
//
titleInfoObjtype(type = "0,1") {
console.log(type);
let list = type.split(",");
//
this.listTow = [];
//tab
this.chanckListTow = [];
this.chanckList.forEach((res) => {
list.forEach((element) => {
if (element == res.lable) {
this.listTow.push(res.conent);
this.chanckListTow.push(res);
}
});
});
//tab
this.activeName = this.chanckListTow[0].lable;
if (localStorage.getItem("activeName")) {
this.activeName = localStorage.getItem("activeName");
localStorage.setItem("activeName", this.activeName);
}
//
let listname = this.chanckListTow.filter(
(item) => item.lable == this.activeName
);
if (listname) {
this.xtmcName = listname[0].xtmcName;
}
this.handleQuery();
},
titleInfo() {
getassetTaskid(this.$route.query.id || this.$route.meta.id).then(
(res) => {
if (res.code == 200) {
this.titleInfoObj = res.data;
// this.$set(this.titleInfoObj,'type',"0,1")
this.titleInfoObjtype(this.titleInfoObj.type);
}
}
);
},
//
resetQuery() {
this.activeName = this.chanckListTow[0].lable;
this.pagination = {
current: 1,
size: 10,
type: this.activeName,
};
if (this.index == 1) {
this.formInline = {
type: this.activeName,
};
localStorage.removeItem("ismypaginationTow");
this.getList();
} else if (this.index == 2) {
this.formInlineTwo = {
unitName: "",
};
this.getListTwo();
}
},
//
handleQuery() {
this.pagination = {
current: 1,
size: 10,
type: this.activeName,
};
if (this.index == 1) {
this.pagination = { ...this.pagination, ...this.formInline };
this.formInline.isfanhuiTow = false;
console.log(77777, this.formInline);
console.log(88888, this.pagination);
localStorage.setItem(
"ismypaginationTow",
JSON.stringify(this.formInline)
);
this.getList();
} else if (this.index == 2) {
this.getListTwo();
}
},
//
getPagination(pages) {
this.pagination.current = pages.page;
this.pagination.size = pages.limit;
if (this.index == 1) {
this.getList();
} else if (this.index == 2) {
this.getListTwo();
}
},
// tab
activeTab(id) {
this.index = id;
if (id == 1) {
this.formInline = {
unit: "",
type: "",
status: "",
};
this.getList();
} else {
this.formInlineTwo = {
unitName: "",
};
this.getList();
}
},
getList() {
this.loading = true;
this.pagination.taskId = this.$route.query.id || this.$route.meta.id;
// this.pagination.dwmc = this.$route.query.dwmc || this.$route.meta.dwmc
this.pagination.type = this.activeName;
if (this.$store.state.user.roles.includes("unit")) {
this.pagination.dwmc = this.$store.state.user.useer.nickName;
}
geassetTaskcHc(this.pagination).then((res) => {
this.tableData = res.data.records;
this.loading = false;
this.total = res.data.total;
});
},
getListTwo() {},
// 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 tab = document.getElementById("L-tab"); // ID
const pagination = document.getElementById("L-pagination"); // ID
const elementHeight = element.offsetHeight;
const headerHeight = header.offsetHeight;
const paginationtHeight = pagination.offsetHeight;
const tabHeight = tab.offsetHeight;
this.tabHeader =
elementHeight - headerHeight - paginationtHeight - tabHeight - 160;
},
},
beforeRouteEnter(to, from, next) {
if (to.query.pageType == "info") {
to.meta.title = "资产核查";
to.meta.pageType = to.query.pageType;
to.meta.id = to.query.id;
} else if (to.query.pageType == "look") {
to.meta.title = "任务详情";
to.meta.pageType = to.query.pageType;
to.meta.id = to.query.id;
}
next();
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-timeline {
padding-left: 0;
font-size: 12px;
}
::v-deep .el-form-item__label {
padding-right: 3px;
}
.look-info {
}
::v-deep .el-dialog {
margin-top: 20vh !important;
}
.content-info {
position: relative;
}
.fanhuipiaofu {
position: absolute;
right: 20px;
top: 10px;
}
</style>

@ -1,882 +0,0 @@
<!-- 新增单位 -->
<template>
<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 dict.type.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 dict.type.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 dict.type.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 dict.type.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 dict.type.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 dict.type.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>
<!-- 联系人 -->
<el-row style="margin: 10px 0;">
<span class="top-title-box">联系人</span>
<el-row>
<el-col :span="24">
<el-form-item label="单位负责人" required class="daoqitixingren">
<el-row>
<el-col :span="6">
<el-form-item prop="dwfzrxm">
<el-input v-model="ruleForm.dwfzrxm" style="width: 100%;" :placeholder="disabled ? '':'请输入联系人'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="dwfzrlxfs"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
required: true,
message: '请输入正确的手机号码',
trigger: 'blur'
}
]"
>
<el-input v-model="ruleForm.dwfzrlxfs" style="width: 100%;" :placeholder="disabled ? '':'请输入联系方式'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="dwfzryx"
:rules="[
{
type: 'email',
required: true,
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change']
}
]"
>
<el-input v-model="ruleForm.dwfzryx" style="width: 100%;" :placeholder="disabled ? '':'请输入邮箱'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="dwfzrzwzc">
<el-input v-model="ruleForm.dwfzrzwzc" style="width: 100%;" :placeholder="disabled ? '':'请输入职务职称'"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="分管负责人" class="daoqitixingren">
<el-row>
<el-col :span="6">
<el-form-item>
<el-input v-model="ruleForm.fgfzrxm" style="width: 100%;" :placeholder="disabled ? '':'请输入联系人'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="fgfzrlxfs"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'
}
]"
>
<el-input v-model="ruleForm.fgfzrlxfs" style="width: 100%;" :placeholder="disabled ? '':'请输入联系方式'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="fgfzryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change']
}
]"
>
<el-input v-model="ruleForm.fgfzryx" style="width: 100%;" :placeholder="disabled ? '':'请输入邮箱'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item>
<el-input v-model="ruleForm.fgfzrzwzc" style="width: 100%;" :placeholder="disabled ? '':'请输入职务职称'"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="部门负责人" class="daoqitixingren">
<el-row>
<el-col :span="6">
<el-form-item>
<el-input v-model="ruleForm.bmfzrxm" style="width: 100%;" :placeholder="disabled ? '':'请输入联系人'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="bmfzrlxfs"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'
}
]"
>
<el-input v-model="ruleForm.bmfzrlxfs" style="width: 100%;" :placeholder="disabled ? '':'请输入联系方式'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="bmfzryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change']
}
]"
>
<el-input v-model="ruleForm.bmfzryx" style="width: 100%;" :placeholder="disabled ? '':'请输入邮箱'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item>
<el-input v-model="ruleForm.bmfzrzwzc" style="width: 100%;" :placeholder="disabled ? '':'请输入职务职称'"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="第一联系人" class="daoqitixingren">
<el-row>
<el-col :span="6">
<el-form-item>
<el-input v-model="ruleForm.dylxrxm" style="width: 100%;" :placeholder="disabled ? '':'请输入联系人'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="dylxrlxfs"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'
}
]"
>
<el-input v-model="ruleForm.dylxrlxfs" style="width: 100%;" :placeholder="disabled ? '':'请输入联系方式'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="dylxryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change']
}
]"
>
<el-input v-model="ruleForm.dylxryx" style="width: 100%;" :placeholder="disabled ? '':'请输入邮箱'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item>
<el-input v-model="ruleForm.dylxrzwzc" style="width: 100%;" :placeholder="disabled ? '':'请输入职务职称'"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="首席数据官" class="daoqitixingren">
<el-row>
<el-col :span="6">
<el-form-item>
<el-input v-model="ruleForm.sxsjg" style="width: 100%;" :placeholder="disabled ? '':'请输入联系人'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="sxsjglxfs"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'
}
]"
>
<el-input v-model="ruleForm.sxsjglxfs" style="width: 100%;" :placeholder="disabled ? '':'请输入联系方式'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="sxsjgyx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change']
}
]"
>
<el-input v-model="ruleForm.sxsjgyx" style="width: 100%;" :placeholder="disabled ? '':'请输入邮箱'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item>
<el-input v-model="ruleForm.sxsjgzwzc" style="width: 100%;" :placeholder="disabled ? '':'请输入职务职称'"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="数据官联络人" class="daoqitixingren">
<el-row>
<el-col :span="6">
<el-form-item>
<el-input v-model="ruleForm.sjgllr" style="width: 100%;" :placeholder="disabled ? '':'请输入联系人'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="sjgllrlxfs"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'
}
]"
>
<el-input v-model="ruleForm.sjgllrlxfs" style="width: 100%;" :placeholder="disabled ? '':'请输入联系方式'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="sjgllryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change']
}
]"
>
<el-input v-model="ruleForm.sjgllryx" style="width: 100%;" :placeholder="disabled ? '':'请输入邮箱'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item>
<el-input v-model="ruleForm.sjgllrzwzc" style="width: 100%;" :placeholder="disabled ? '':'请输入职务职称'"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="其他联系人" class="daoqitixingren" v-for="(domain, index) in ruleForm.otherConcat" :key="domain.key" :prop="'otherConcat.' + index + '.qtlxrlxfs'">
<el-row>
<el-col :span="6">
<el-form-item>
<el-input v-model="domain.qtlxrxm" style="width: 100%;" :placeholder="disabled ? '':'请输入联系人'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item :prop="'otherConcat.' + index + '.qtlxrlxfs'"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur'
}
]"
>
<el-input v-model="domain.qtlxrlxfs" style="width: 100%;" :placeholder="disabled ? '':'请输入联系方式'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item prop="qtlxryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change']
}
]"
>
<el-input v-model="domain.qtlxryx" style="width: 100%;" :placeholder="disabled ? '':'请输入邮箱'"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" style="margin-left: 10px;">
<el-form-item>
<el-input v-model="domain.qtlxrzwzc" style="width: 100%;" :placeholder="disabled ? '':'请输入职务职称'"></el-input>
</el-form-item>
</el-col>
<el-col :span="1" style="text-align: center;" v-if="isDisabled">
<i @click="removeDomain(domain,'otherConcat')" class="el-icon-remove-outline" style="margin-left: 5px;font-size: 16px;cursor: pointer;"></i>
</el-col>
</el-row>
</el-form-item>
</el-col>
</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>
</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 dict.type.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 && 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>
<script>
import pcas from "@/utils/pca-code.json"
import { unitOwnInfo, unitEditOwn } from "@/api/auditPagesApi/index";
import { mapGetters } from 'vuex'
import { MessageBox } from 'element-ui'
export default {
dicts:['zc_xtzyx', 'is_no', 'sshy', 'dwlx', 'dwjs', 'dwzsxz', 'dbxx_dbdj'],
data() {
const validateTyshxydm = (rule, value, callback) => {
const pattern = /^[a-zA-Z0-9]{18}$/;
if (!pattern.test(value)) {
callback(new Error('请输入正确格式的18位统一社会信用代码'));
return;
}
callback();
// if (value.length!== 18) {
// callback(new Error('18'));
// return;
// } else {
// callback();
// }
}
return {
options: pcas ,
isDisabled: false,
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:"社会团体"
}
],
props:{
value:'value',
label:"value",
checkStrictly:true,
},
ruleForm:{
//
otherConcat:[
{
qtlxrxm: '',
qtlxrlxfs: '',
qtlxryx: '',
qtlxrzwzc: '',
}
],
//
ssqy:[],
//
jcxxList:[
{
name:"",
tyshxydm:"",
lxdh:"",
}
],
},
rules:{
userName: [
{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' },
{ required: true, trigger: "blur" ,validator: validateTyshxydm},
],
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' },
],
daoqitixingren: [
{ required: true, message: '请输入单位名称', trigger: 'blur' },
],
sjdw: [
{ required: true, message: '请输入上级单位', trigger: 'blur' },
],
dwfzrxm: [
{ required: true, message: '请输入单位负责人姓名', trigger: 'blur' },
],
// dwfzrlxfs: [
// { required: true, message: '', trigger: 'blur' },
// ],
// dwfzryx: [
// { required: true, message: '', trigger: 'blur' },
// ],
dwfzrzwzc: [
{ required: true, message: '请输入单位负责人职务职称', trigger: 'blur' },
],
},
disabled:false,
loading:false,
}
},
computed: {
// visitedViews() {
// return this.$store.state.tagsView.visitedViews
// },
// routes() {
// return this.$store.state.permission.routes
// },
// theme() {
// return this.$store.state.settings.theme;
// }
...mapGetters([
'nickName'
]),
},
mounted(){
console.log(this.nickName);
if(this.nickName == "admin"){
this.disabled = true;
}else{
this.getInfo()
this.disabled = true;
}
// this.$nextTick(()=>{
// const inputElements = document.querySelectorAll('.el-input__inner');
// const textareaInputElements = document.querySelectorAll('.el-textarea__inner');
// inputElements.forEach((input) => {
// input.placeholder = '';
// });
// textareaInputElements.forEach((input) => {
// input.placeholder = '';
// });
// })
// if(this.$route.query.pageType == 'look') {
// this.getInfo(this.$route.query.id)
// this.disabled = true;
// this.$nextTick(()=>{
// const inputElements = document.querySelectorAll('.el-input__inner');
// const textareaInputElements = document.querySelectorAll('.el-textarea__inner');
// inputElements.forEach((input) => {
// input.placeholder = '';
// });
// textareaInputElements.forEach((input) => {
// input.placeholder = '';
// });
// })
// } else if(this.$route.query.pageType == 'change') {
// this.getInfo(this.$route.query.id)
// this.disabled = false;
// }
},
methods:{
// handleChange(value){
// console.log(value);
// },
//
getInfo(){
this.loading = true;
unitOwnInfo().then(res=>{
this.ruleForm = res.data;
if(res.data.ssqyprovince && res.data.ssqycity && res.data.ssqycounty) {
this.$set(this.ruleForm, 'ssqy', [res.data.ssqyprovince,res.data.ssqycity,res.data.ssqycounty])
} else if(res.data.ssqyprovince && res.data.ssqycity) {
this.$set(this.ruleForm, 'ssqy', [res.data.ssqyprovince,res.data.ssqycity])
} else if(res.data.ssqyprovince) {
this.$set(this.ruleForm, 'ssqy', [res.data.ssqyprovince])
}
if(!res.data.jcxxList) {
this.$set(this.ruleForm,'jcxxList', [{name:"",tyshxydm:"",lxdh:"",}])
}
if(this.ruleForm.ancestors) {
let deptId = this.ruleForm.ancestors.split(',');
this.$set(this.ruleForm, 'zzjg', deptId)
}
setTimeout(() => {
this.$refs.ruleForm.clearValidate()
}, 100);
this.loading = false;
})
},
// form
addForm(type){
this.ruleForm[type].push({
qtlxrxm: '',
qtlxrlxfs: '',
qtlxryx: '',
qtlxrzwzc: '',
key: Date.now()
});
},
// Form
addGongyinglian(type){
this.ruleForm[type].push({
sj:"",
xtym:"",
xthc:"",
dbjb:"",
dwmc:"",
jcjg:"",
key: Date.now()
});
},
// form
removeDomain(item,type) {
var index = this.ruleForm[type].indexOf(item)
if (index !== -1) {
this.ruleForm[type].splice(index, 1)
}
},
newUnit(){
this.$refs['ruleForm'].validate((valid) => {
if(valid) {
if(this.ruleForm.ssqy?.length > 0) {
this.ruleForm.ssqyprovince = this.ruleForm.ssqy[0]
this.ruleForm.ssqycity = this.ruleForm.ssqy[1]
this.ruleForm.ssqycounty = this.ruleForm.ssqy[2]
}
if(this.ruleForm.zzjg.length == 2) {
this.ruleForm.deptId = Number(this.ruleForm.zzjg[1])
} else {
this.ruleForm.deptId = Number(this.ruleForm.zzjg[0])
}
this.loading = true;
unitEditOwn(this.ruleForm).then(res=>{
this.loading = false;
this.$modal.msgSuccess("修改成功");
this.disabled = true;
this.isDisabled = false;
this.getInfo()
}).catch(err=>{
this.loading = false;
})
} else {
this.$message({
type: 'info',
message: '请填写完整'
});
}
})
},
cancel(){
this.$router.go(-1);
},
editUnit(){
this.disabled = false;
this.isDisabled = true;
},
},
}
</script>
Loading…
Cancel
Save