功能查看

main
项洋 19 hours ago
parent aa836c4dce
commit 14745d9448

@ -18,7 +18,7 @@
"dependencies": {
"@element-plus/icons-vue": "2.3.1",
"@vueup/vue-quill": "1.2.0",
"@vueuse/core": "10.11.0",
"@vueuse/core": "^10.11.0",
"axios": "0.28.1",
"clipboard": "2.0.11",
"echarts": "5.5.1",
@ -30,7 +30,7 @@
"jsencrypt": "3.3.2",
"node-forge": "^1.3.1",
"nprogress": "0.2.0",
"pinia": "2.1.7",
"pinia": "^2.1.7",
"splitpanes": "3.1.5",
"vue": "3.4.31",
"vue-cropper": "1.1.1",

@ -1,7 +1,9 @@
import { createWebHistory, createRouter } from 'vue-router'
import { createRouter, createWebHashHistory } from 'vue-router'
/* Layout */
import Layout from '@/layout'
/**
* Note: 路由配置项
*
@ -33,7 +35,7 @@ export const constantRoutes = [
children: [
{
path: '/redirect/:path(.*)',
component: () => import('@/views/redirect/index.vue')
component: () => import('@/views/redirect')
}
]
},
@ -48,7 +50,7 @@ export const constantRoutes = [
hidden: true
},
{
path: "/:pathMatch(.*)*",
path: '/404',
component: () => import('@/views/error/404'),
hidden: true
},
@ -60,14 +62,50 @@ export const constantRoutes = [
{
path: '',
component: Layout,
redirect: '/index',
hidden: true,
redirect: 'index',
children: [
{
path: '/index',
path: 'index',
component: () => import('@/views/index'),
name: 'Index',
meta: { title: '首页', icon: 'dashboard', affix: true, breadcrumb: false }
meta: { title: '首页', icon: 'dashboard', affix: true }
},{
path: 'assetsAuth',
component: () => import('@/views/auditPages/assetsManagement/assetsAuth'),
name: 'AssetsAuth',
// meta: { title: '新增资产', icon: 'user', activeMenu: "/assets" }
meta: { title: '新增资产', icon: 'user', activeMenu: "/assetsManage/assets" }
},{
path: 'taskInfo',
component: () => import('@/views/auditPages/taskManagement/info'),
name: 'TaskInfo',
meta: { title: '任务详情', icon: 'user', activeMenu: "/task" }
},{
path: 'taskAudit',
component: () => import('@/views/auditPages/taskManagement/auditList'),
name: 'taskAudit',
meta: { title: '任务审核', icon: 'user', activeMenu: "/task" }
},{
path: 'taskAuditInfo',
component: () => import('@/views/auditPages/taskManagement/audit'),
name: 'taskAuditInfo',
meta: { title: '资产审核', icon: 'user', activeMenu: "/task" }
},{
path: 'taskAuditInfolishichakan',
component: () => import('@/views/auditPages/taskManagement/audit'),
name: 'taskAuditInfolishichakan',
meta: { title: '资产提交记录', icon: 'user', activeMenu: "/task" }
},{
path: 'unitAuth',
component: () => import('@/views/auditPages/unitManagement/index'),
name: 'UnitAuth',
meta: { title: '新增单位', icon: 'user', activeMenu: "/unit" }
},{
path: 'unitAssetsAuth',
component: () => import('@/views/auditPages/unitAutonomicFill/assetsAuth'),
name: 'unitAssetsAuth',
meta: { title: '资产修改', icon: 'user', activeMenu: "/unitFill" }
}
]
},
@ -82,9 +120,10 @@ export const constantRoutes = [
component: () => import('@/views/system/user/profile/index'),
name: 'Profile',
meta: { title: '个人中心', icon: 'user' }
}
},
]
}
},
]
// 动态路由,基于用户权限动态去加载
@ -161,15 +200,14 @@ export const dynamicRoutes = [
}
]
// 创建路由
const router = createRouter({
history: createWebHistory(),
routes: constantRoutes,
scrollBehavior(to, from, savedPosition) {
if (savedPosition) {
return savedPosition
}
return { top: 0 }
},
history: createWebHashHistory(),
scrollBehavior: () => ({ top: 0 }),
routes: constantRoutes
})
// 防止连续点击多次路由报错的方法在Vue Router 4中不再需要
// 因为它已经内置处理了这种情况
export default router

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,515 @@
<!-- 小程序表单 -->
<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> -->
<!-- @select="handleSelect" -->
<!-- :disabled="disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></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" required>
<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="认证主体" required>
<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"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="小程序状态" required>
<el-select
v-model="ruleForm.state"
placeholder="请选择小程序状态"
@change="changeState"
>
<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" required>
<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="小程序包状态" required>
<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="认证状态" required>
<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="认证时间" required>
<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="认证类型" required>
<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备案状态" required>
<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="域名白名单" required>
<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="服务类目" required>
<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 label="行业电子邮箱" required>
<el-form-item
prop="hydzyx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.hydzyx"
style="width: 100%"
placeholder="请输入行业电子邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属行业" required>
<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>
<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>
<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="系统责任人" required>
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<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" required>
<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="引用插件(开发者)" required>
<el-input
v-model="ruleForm.yycjKfz"
style="width: 100%"
placeholder="请输入引用插件(开发者)"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="ruleForm.state == 7">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.state == 7"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="系统简介" required>
<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; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import {
assetMiniPrograms,
miniProgramsInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"gzh_state",
"gzh_rzzt",
"gzh_rzlx",
"email_state",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.state == 7 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
xcxmc: [
{ required: true, message: "小程序名称不能为空", trigger: "blur" },
],
},
loading: false,
disabled: false,
// disabledTwo:true
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
if (e != 7) {
this.ruleForm.bfyy = "";
}
},
getInfo(id) {
miniProgramsInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
tyshxydm: item.userName,
});
});
});
cb(results);
},
//
handleSelect(item) {
this.ruleForm.tyshxydm = item.tyshxydm;
},
//
newAssets() {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetMiniPrograms("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({ name: "Program", params: this.queryData });
});
} else {
assetMiniPrograms("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "Program", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,799 @@
<!-- 公众号表单 -->
<template>
<div class="L-assets-info">
<div class="assets-info-top">
<el-row style="margin: 10px 0">
<span class="top-title-box">基本信息11</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> -->
<!-- :disabled="!disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="平台类型" prop="ptlx" required>
<el-select
v-model="ruleForm.ptlx"
@change="ptlxChange"
placeholder="请选择平台类型"
>
<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="微信号" required>
<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"
:rules="[
{
required: true,
message: '公众号名称不能为空',
trigger: 'blur',
},
]"
>
<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
class="daoqitixingren"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公众号状态" required>
<el-select
v-model="ruleForm.gzhzt"
placeholder="请选择公众号状态"
@change="changeState"
>
<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" required>
<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>
<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="认证状态" required>
<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="认证时间" required>
<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="认证类型" required>
<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="所属行业" required>
<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>
<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>
<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="系统责任人" required>
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<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="认证主体" required>
<el-input
v-model="ruleForm.rzzt"
style="width: 100%"
placeholder="请输入认证主体"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="ruleForm.gzhzt == 7">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.gzhzt == 7"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="系统简介" required>
<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
>
<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
>
<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
>
<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
class="daoqitixingren"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</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="请输入账号名称"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="账号ID" required>
<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>
<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>
<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>
<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>
<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>
<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>
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<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>
<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; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import {
assetOfficialAccount,
assetOfficialAccountInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"gzh_state",
"gzh_lx",
"gzh_rzzt",
"gzh_rzlx",
"gzh_cdlx",
"sys_ptlx_type",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.gzhzt == 7 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {
ptlx: "1",
cdList: [
{
cdmc: "",
cdlj: "",
cdlx: "",
},
],
},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
// gzhmc:[
// { required: true, message: "", trigger: "blur" }
// ],
},
loading: false,
disabled: false,
// disabledTwo:true,
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
console.log(e);
if (e != 7) {
this.ruleForm.bfyy = "";
}
},
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) {
assetOfficialAccountInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
ptlxChange(item) {
Object.keys(this.ruleForm).forEach((key) => {
if(key =="cdList"){
this.ruleForm[key] = [];
return
}
if (key !== "ssdw" && key !== "ptlx" ) {
this.ruleForm[key] = "";
}
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
//
newAssets() {
console.log(this.ruleForm);
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetOfficialAccount("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({
name: "OfficialAccount",
params: this.queryData,
});
});
} else {
assetOfficialAccount("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "OfficialAccount", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,414 @@
<!-- 电子邮件表单 -->
<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> -->
<!-- :disabled="!disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></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="建设类型" required>
<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="邮件系统供应商" required>
<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="密码算法" required>
<el-input
v-model="ruleForm.mmsf"
placeholder="请输入密码算法"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮件系统状态" required>
<el-select
@change="changeState"
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="安全防护系统" required>
<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="安全备份环境" required>
<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="数字证书厂商" required>
<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="上线时间" required>
<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="所属行业" required>
<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="重点行业" required>
<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="行政区划" required>
<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="系统责任人" required>
<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 label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<el-input
v-model="ruleForm.xtzrrdz"
style="width: 100%"
placeholder="请输入系统责任人地址"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="ruleForm.yjxtzc == 2">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.yjxtzc == 2"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="简介" required>
<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; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import {
assetEmail,
assetEmailInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"email_jslx",
"email_state",
"email_hasorno",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.yjxtzc == 2 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
dzyxhz: [
{ required: true, message: "电子邮箱后缀不能为空", trigger: "blur" },
],
},
loading: false,
disabled: false,
// disabledTwo:true,
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
if (e != 2) {
this.ruleForm.bfyy = "";
}
},
getInfo(id) {
assetEmailInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
//
newAssets() {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetEmail("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({ name: "Email", params: this.queryData });
});
} else {
assetEmail("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "Email", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,399 @@
<!-- 移动应用程序表单 -->
<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="所属单位" required prop="ssdw">
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入单位名称"></el-input> -->
<!-- :disabled="!disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="移动应用名称" required 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="包名" required>
<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备案状态" required>
<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备案号" required>
<el-input
v-model="ruleForm.icpbah"
placeholder="请输入icp备案号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
class="daoqitixingren"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="文件名" required>
<el-input
v-model="ruleForm.wjm"
placeholder="请输入文件名"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属行业" required>
<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>
<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>
<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="安全加固情况" required>
<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="版本信息" required>
<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="版本信息(版本号)" required>
<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" required>
<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="版本信息(上架平台)" required>
<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="文件大小" required>
<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"
placeholder="请选择移动应用系统状态"
@change="changeState"
>
<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 v-show="ruleForm.appState == 7">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.appState == 7"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="简介" required>
<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; padding-bottom: 30px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import { assetApp, assetAppInfo, unitAllList } from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_icp_state",
"app_sshy",
"app_zdhy",
"app_xzqh",
"app_aqjgqk",
"gzh_state",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.appState == 7 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
appName: [
{ required: true, message: "移动应用名称不能为空", trigger: "blur" },
],
},
loading: false,
disabled: false,
// disabledTwo:true,
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
if (e != 7) {
this.ruleForm.bfyy = "";
}
},
getInfo(id) {
assetAppInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
//
newAssets() {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetApp("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({
name: "MobileApplication",
params: this.queryData,
});
});
} else {
assetApp("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "MobileApplication", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,24 @@
import { unitAllList } from "@/api/auditPagesApi/index";
const equalToPassword = (rule, value, callback) => {
console.log("出发出发");
console.log(rule);
console.log(value);
unitAllList({ nickName: value }).then(res => {
if (res.data.length != 1) {
callback(new Error("请输入正确的单位名称"));
} else {
if (value == res.data[0].nickName) {
callback();
} else {
callback(new Error("请输入正确的单位名称"));
}
}
})
};
export default equalToPassword

File diff suppressed because it is too large Load Diff

@ -0,0 +1,515 @@
<!-- 小程序表单 -->
<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> -->
<!-- @select="handleSelect" -->
<!-- :disabled="disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></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" required>
<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="认证主体" required>
<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"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="小程序状态" required>
<el-select
v-model="ruleForm.state"
placeholder="请选择小程序状态"
@change="changeState"
>
<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" required>
<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="小程序包状态" required>
<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="认证状态" required>
<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="认证时间" required>
<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="认证类型" required>
<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备案状态" required>
<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="域名白名单" required>
<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="服务类目" required>
<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 label="行业电子邮箱" required>
<el-form-item
prop="hydzyx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.hydzyx"
style="width: 100%"
placeholder="请输入行业电子邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属行业" required>
<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>
<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>
<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="系统责任人" required>
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<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" required>
<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="引用插件(开发者)" required>
<el-input
v-model="ruleForm.yycjKfz"
style="width: 100%"
placeholder="请输入引用插件(开发者)"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="ruleForm.state == 7">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.state == 7"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="系统简介" required>
<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; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import {
assetMiniPrograms,
miniProgramsInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"gzh_state",
"gzh_rzzt",
"gzh_rzlx",
"email_state",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.state == 7 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
xcxmc: [
{ required: true, message: "小程序名称不能为空", trigger: "blur" },
],
},
loading: false,
disabled: false,
// disabledTwo:true
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
if (e != 7) {
this.ruleForm.bfyy = "";
}
},
getInfo(id) {
miniProgramsInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
tyshxydm: item.userName,
});
});
});
cb(results);
},
//
handleSelect(item) {
this.ruleForm.tyshxydm = item.tyshxydm;
},
//
newAssets() {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetMiniPrograms("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({ name: "Program", params: this.queryData });
});
} else {
assetMiniPrograms("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "Program", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,799 @@
<!-- 公众号表单 -->
<template>
<div class="L-assets-info">
<div class="assets-info-top">
<el-row style="margin: 10px 0">
<span class="top-title-box">基本信息11</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> -->
<!-- :disabled="!disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="平台类型" prop="ptlx" required>
<el-select
v-model="ruleForm.ptlx"
@change="ptlxChange"
placeholder="请选择平台类型"
>
<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="微信号" required>
<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"
:rules="[
{
required: true,
message: '公众号名称不能为空',
trigger: 'blur',
},
]"
>
<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
class="daoqitixingren"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公众号状态" required>
<el-select
v-model="ruleForm.gzhzt"
placeholder="请选择公众号状态"
@change="changeState"
>
<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" required>
<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>
<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="认证状态" required>
<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="认证时间" required>
<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="认证类型" required>
<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="所属行业" required>
<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>
<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>
<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="系统责任人" required>
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<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="认证主体" required>
<el-input
v-model="ruleForm.rzzt"
style="width: 100%"
placeholder="请输入认证主体"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="ruleForm.gzhzt == 7">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.gzhzt == 7"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="系统简介" required>
<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
>
<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
>
<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
>
<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
class="daoqitixingren"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</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="请输入账号名称"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="账号ID" required>
<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>
<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>
<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>
<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>
<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>
<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>
<el-input
v-model="ruleForm.xtzrr"
style="width: 100%"
placeholder="请输入系统责任人"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<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>
<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; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import {
assetOfficialAccount,
assetOfficialAccountInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"gzh_state",
"gzh_lx",
"gzh_rzzt",
"gzh_rzlx",
"gzh_cdlx",
"sys_ptlx_type",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.gzhzt == 7 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {
ptlx: "1",
cdList: [
{
cdmc: "",
cdlj: "",
cdlx: "",
},
],
},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
// gzhmc:[
// { required: true, message: "", trigger: "blur" }
// ],
},
loading: false,
disabled: false,
// disabledTwo:true,
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
console.log(e);
if (e != 7) {
this.ruleForm.bfyy = "";
}
},
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) {
assetOfficialAccountInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
ptlxChange(item) {
Object.keys(this.ruleForm).forEach((key) => {
if(key =="cdList"){
this.ruleForm[key] = [];
return
}
if (key !== "ssdw" && key !== "ptlx" ) {
this.ruleForm[key] = "";
}
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
//
newAssets() {
console.log(this.ruleForm);
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetOfficialAccount("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({
name: "OfficialAccount",
params: this.queryData,
});
});
} else {
assetOfficialAccount("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "OfficialAccount", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,414 @@
<!-- 电子邮件表单 -->
<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> -->
<!-- :disabled="!disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></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="建设类型" required>
<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="邮件系统供应商" required>
<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="密码算法" required>
<el-input
v-model="ruleForm.mmsf"
placeholder="请输入密码算法"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮件系统状态" required>
<el-select
@change="changeState"
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="安全防护系统" required>
<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="安全备份环境" required>
<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="数字证书厂商" required>
<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="上线时间" required>
<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="所属行业" required>
<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="重点行业" required>
<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="行政区划" required>
<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="系统责任人" required>
<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 label="系统责任人电话" required>
<el-form-item
prop="xtzrrdh"
:rules="[
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: '请输入正确的手机号码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.xtzrrdh"
style="width: 100%"
placeholder="请输入系统责任人电话"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系统责任人邮箱" required>
<el-form-item
prop="xtzrryx"
:rules="[
{
type: 'email',
message: '请输入正确的邮箱地址',
trigger: ['blur', 'change'],
},
]"
>
<el-input
v-model="ruleForm.xtzrryx"
style="width: 100%"
placeholder="请输入系统责任人邮箱"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="系统责任人地址" required>
<el-input
v-model="ruleForm.xtzrrdz"
style="width: 100%"
placeholder="请输入系统责任人地址"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="ruleForm.yjxtzc == 2">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.yjxtzc == 2"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="简介" required>
<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; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import {
assetEmail,
assetEmailInfo,
unitAllList,
} from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_xzqh",
"app_sshy",
"app_zdhy",
"email_jslx",
"email_state",
"email_hasorno",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.yjxtzc == 2 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
dzyxhz: [
{ required: true, message: "电子邮箱后缀不能为空", trigger: "blur" },
],
},
loading: false,
disabled: false,
// disabledTwo:true,
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
if (e != 2) {
this.ruleForm.bfyy = "";
}
},
getInfo(id) {
assetEmailInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
//
newAssets() {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetEmail("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({ name: "Email", params: this.queryData });
});
} else {
assetEmail("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "Email", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,399 @@
<!-- 移动应用程序表单 -->
<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="所属单位" required prop="ssdw">
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入单位名称"></el-input> -->
<!-- :disabled="!disabledTwo" -->
<el-autocomplete
v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync"
placeholder="请输入所属单位"
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="移动应用名称" required 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="包名" required>
<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备案状态" required>
<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备案号" required>
<el-input
v-model="ruleForm.icpbah"
placeholder="请输入icp备案号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
class="daoqitixingren"
label="统一社会信用代码"
required
>
<el-form-item
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
>
<el-input
v-model="ruleForm.tyshxydm"
placeholder="请输入统一信用代码"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="文件名" required>
<el-input
v-model="ruleForm.wjm"
placeholder="请输入文件名"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="所属行业" required>
<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>
<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>
<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="安全加固情况" required>
<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="版本信息" required>
<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="版本信息(版本号)" required>
<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" required>
<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="版本信息(上架平台)" required>
<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="文件大小" required>
<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"
placeholder="请选择移动应用系统状态"
@change="changeState"
>
<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 v-show="ruleForm.appState == 7">
<el-col :span="24">
<el-form-item
label="关停原因"
prop="bfyy"
:required="ruleForm.appState == 7"
>
<el-input
type="textarea"
resize="none"
placeholder="请输入关停原因"
:rows="5"
v-model="ruleForm.bfyy"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="简介" required>
<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; padding-bottom: 30px; text-align: center"
v-if="pageType !== 'look'"
>
<el-button type="danger" @click="sendBack"></el-button>
<el-button type="primary" @click="newAssets" :loading="loading"
>保存</el-button
>
</el-row>
</el-form>
<el-row
style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'"
>
<el-button type="primary" @click="sendBack"></el-button>
</el-row>
</div>
</div>
</div>
</template>
<script>
import { assetApp, assetAppInfo, unitAllList } from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js";
export default {
dicts: [
"app_icp_state",
"app_sshy",
"app_zdhy",
"app_xzqh",
"app_aqjgqk",
"gzh_state",
],
data() {
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.appState == 7 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
return {
ruleForm: {},
rules: {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
appName: [
{ required: true, message: "移动应用名称不能为空", trigger: "blur" },
],
},
loading: false,
disabled: false,
// disabledTwo:true,
};
},
props: ["pageType", "id", "queryData"],
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;
// this.disabledTwo = false;
}
},
methods: {
changeState(e) {
if (e != 7) {
this.ruleForm.bfyy = "";
}
},
getInfo(id) {
assetAppInfo(id).then((res) => {
this.ruleForm = res.data;
});
},
//
querySearchAsync(queryString, cb) {
let results = [];
unitAllList({ nickName: queryString }).then((res) => {
res.data.forEach((item) => {
results.push({
value: item.nickName,
id: item.id,
});
});
});
cb(results);
},
//
newAssets() {
this.$refs["ruleForm"].validate((valid) => {
if (valid) {
this.loading = true;
if (this.pageType == "change") {
assetApp("put", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("修改成功");
// this.$router.go(-1);
this.$router.push({
name: "MobileApplication",
params: this.queryData,
});
});
} else {
assetApp("post", this.ruleForm).then((res) => {
// console.log(res,"res");
this.loading = false;
this.$modal.msgSuccess("新增成功");
this.$router.go(-1);
});
}
}
});
},
sendBack() {
// this.$router.go(-1);
this.$router.push({ name: "MobileApplication", params: this.queryData });
},
},
};
</script>

@ -0,0 +1,24 @@
import { unitAllList } from "@/api/auditPagesApi/index";
const equalToPassword = (rule, value, callback) => {
console.log("出发出发");
console.log(rule);
console.log(value);
unitAllList({ nickName: value }).then(res => {
if (res.data.length != 1) {
callback(new Error("请输入正确的单位名称"));
} else {
if (value == res.data[0].nickName) {
callback();
} else {
callback(new Error("请输入正确的单位名称"));
}
}
})
};
export default equalToPassword

@ -0,0 +1,249 @@
<template>
<div class="upload-file">
<el-upload
multiple
v-show="fileList.length == 0"
:action="uploadFileUrl"
:before-upload="handleBeforeUpload"
:file-list="fileList"
:limit="limit"
:on-error="handleUploadError"
:on-exceed="handleExceed"
:on-success="handleUploadSuccess"
:show-file-list="false"
:headers="headers"
class="upload-file-uploader"
ref="fileUpload"
>
<!-- 上传按钮 -->
<slot v-if="fileList.length == 0"></slot>
</el-upload>
<!-- 文件列表 -->
<transition-group
class="upload-file-list el-upload-list el-upload-list--text"
name="el-fade-in-linear"
tag="ul"
>
<li
:key="file.url"
class="el-upload-list__item ele-upload-list__item-content"
v-for="(file, index) in fileList"
>
<el-link
:href="`${baseUrl}${file.url}`"
:underline="false"
target="_blank"
>
<span class="el-icon-document"> {{ getFileName(file.name) }} </span>
</el-link>
<div
class="ele-upload-list__item-content-action"
v-if="$route.query.pageType != 'look'"
>
<el-link :underline="false" @click="handleDelete(index)" type="danger"
>删除</el-link
>
</div>
</li>
</transition-group>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
import Sortable from "sortablejs";
export default {
name: "FileUpload",
props: {
//
value: [String, Object, Array],
//
limit: {
type: Number,
default: 5,
},
// (MB)
fileSize: {
type: Number,
default: 5,
},
// , ['png', 'jpg', 'jpeg']
fileType: {
type: Array,
default: () => ["doc", "xls", "ppt", "txt", "pdf"],
},
//
isShowTip: {
type: Boolean,
default: true,
},
},
data() {
return {
number: 0,
uploadList: [],
baseUrl:process.env.VUE_APP_HJ == "test" ? process.env.VUE_APP_BASE_API :location.origin + '/api',
uploadFileUrl: process.env.VUE_APP_HJ == "test" ? process.env.VUE_APP_BASE_API + "/common/upload" : location.origin + '/api/common/upload',
headers: {
Authorization: "Bearer " + getToken(),
},
fileList: [],
};
},
watch: {
value: {
handler(val) {
if (val) {
let temp = 1;
//
const list = Array.isArray(val) ? val : this.value.split(",");
//
this.fileList = list.map((item) => {
if (typeof item === "string") {
item = { name: item, url: item };
}
item.uid = item.uid || new Date().getTime() + temp++;
return item;
});
} else {
this.fileList = [];
return [];
}
},
deep: true,
immediate: true,
},
},
computed: {
//
showTip() {
return this.isShowTip && (this.fileType || this.fileSize);
},
},
mounted(){
// console.log( process.env.VUE_APP_HJ,'ddfee',process.env.VUE_APP_BASE_API + "/common/upload")
},
methods: {
//
handleBeforeUpload(file) {
//
if (this.fileType) {
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
if (!isTypeOk) {
this.$modal.msgError(
`文件格式不正确,请上传${this.fileType.join("/")}格式文件!`
);
return false;
}
}
//
if (file.name.includes(",")) {
this.$modal.msgError("文件名不正确,不能包含英文逗号!");
return false;
}
//
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}
this.$modal.loading("正在上传文件,请稍候...");
this.number++;
return true;
},
//
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
//
handleUploadError(err) {
this.$modal.msgError("上传文件失败,请重试");
this.$modal.closeLoading();
},
//
handleUploadSuccess(res, file) {
if (res.code === 200) {
this.uploadList.push({ name: res.fileName, url: res.fileName });
this.uploadedSuccessfully();
} else if (res.code == 401) {
this.$store.dispatch("LogOut").then(() => {
// location.href = '/login';
this.$modal.msgError(res.msg);
this.$modal.closeLoading();
this.uploadedSuccessfully();
this.$router.replace("/login");
});
} else {
this.number--;
this.$modal.closeLoading();
this.$modal.msgError(res.msg);
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
},
//
handleDelete(index) {
this.fileList.splice(index, 1);
this.$emit("input", this.listToString(this.fileList));
},
//
uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
this.$emit("input", this.listToString(this.fileList));
this.$modal.closeLoading();
}
},
//
getFileName(name) {
// url
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
return name;
}
},
//
listToString(list, separator) {
let strs = "";
separator = separator || ",";
for (let i in list) {
strs += list[i].url + separator;
}
return strs != "" ? strs.substr(0, strs.length - 1) : "";
},
},
};
</script>
<style scoped lang="scss">
.upload-file-uploader {
margin-bottom: 5px;
}
.upload-file-list .el-upload-list__item {
border: 1px solid #e4e7ed;
line-height: 2;
margin-bottom: 10px;
position: relative;
}
.upload-file-list .ele-upload-list__item-content {
display: flex;
justify-content: space-between;
align-items: center;
color: inherit;
}
.ele-upload-list__item-content-action .el-link {
margin-right: 10px;
}
</style>
Loading…
Cancel
Save