parent
a746f28aa3
commit
e348f75f49
@ -0,0 +1,427 @@
|
||||
<!-- 电子邮件表单 -->
|
||||
<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="ruleFormRef"
|
||||
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 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 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 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 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 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 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 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="display: flex; justify-content: center; align-items: 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="display: flex; justify-content: center; align-items: center"
|
||||
v-if="pageType == 'look'"
|
||||
>
|
||||
<el-button type="primary" @click="sendBack">返回</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted, nextTick } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import {
|
||||
assetEmail,
|
||||
assetEmailInfo,
|
||||
unitAllList,
|
||||
} from "@/api/auditPagesApi/index";
|
||||
import equalToPassword from "@/views/components/assetsType/mainx.js";
|
||||
import { useDict } from "@/utils/dict";
|
||||
|
||||
const { app_xzqh, app_sshy, app_zdhy, email_jslx, email_state, email_hasorno } =
|
||||
useDict(
|
||||
"app_xzqh",
|
||||
"app_sshy",
|
||||
"app_zdhy",
|
||||
"email_jslx",
|
||||
"email_state",
|
||||
"email_hasorno"
|
||||
);
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const ruleFormRef = ref(null);
|
||||
|
||||
// 从route获取参数
|
||||
const pageType = route.query.pageType || route.params.pageType;
|
||||
const id = route.query.id || route.params.id;
|
||||
const queryData = route.query || route.params;
|
||||
|
||||
const loading = ref(false);
|
||||
const disabled = ref(false);
|
||||
|
||||
const ruleForm = reactive({});
|
||||
|
||||
const rules = reactive({
|
||||
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
|
||||
ssdw: [
|
||||
{ required: true, message: "所属单位不能为空", trigger: "blur" },
|
||||
{ required: true, validator: equalToPassword, trigger: "change" },
|
||||
],
|
||||
dzyxhz: [
|
||||
{ required: true, message: "电子邮箱后缀不能为空", trigger: "blur" },
|
||||
],
|
||||
});
|
||||
|
||||
function changeSateTetx(rule, value, callback) {
|
||||
if (ruleForm.yjxtzc == 2 && !value) {
|
||||
callback(new Error("请填写"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
function changeState(e) {
|
||||
if (e != 2) {
|
||||
ruleForm.bfyy = "";
|
||||
}
|
||||
}
|
||||
|
||||
async function getInfo(id) {
|
||||
try {
|
||||
const res = await assetEmailInfo(id);
|
||||
Object.assign(ruleForm, res.data);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
async function querySearchAsync(queryString, cb) {
|
||||
try {
|
||||
const res = await unitAllList({ nickName: queryString });
|
||||
const results = res.data.map((item) => ({
|
||||
value: item.nickName,
|
||||
id: item.id,
|
||||
}));
|
||||
cb(results);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
cb([]);
|
||||
}
|
||||
}
|
||||
|
||||
async function newAssets() {
|
||||
if (!ruleFormRef.value) return;
|
||||
|
||||
const valid = await ruleFormRef.value.validate().catch(() => false);
|
||||
if (valid) {
|
||||
loading.value = true;
|
||||
try {
|
||||
if (pageType == "change") {
|
||||
await assetEmail("put", ruleForm);
|
||||
ElMessage.success("修改成功");
|
||||
router.push({ name: "Email", params: queryData });
|
||||
} else {
|
||||
await assetEmail("post", ruleForm);
|
||||
ElMessage.success("新增成功");
|
||||
router.go(-1);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function sendBack() {
|
||||
router.push({ path: "/assetsManage2/dzyjZC", params: queryData });
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
if (pageType == "look") {
|
||||
await getInfo(id);
|
||||
disabled.value = true;
|
||||
await 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 (pageType == "change") {
|
||||
await getInfo(id);
|
||||
disabled.value = false;
|
||||
}
|
||||
loading.value = false;
|
||||
});
|
||||
</script>
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,826 @@
|
||||
<!-- 公众号表单 -->
|
||||
<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="ruleFormRef"
|
||||
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 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 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 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 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 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 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 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 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 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 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 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 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="display: flex; justify-content: center; align-items: 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="display: flex; justify-content: center; align-items: center"
|
||||
v-if="pageType == 'look'"
|
||||
>
|
||||
<el-button type="primary" @click="sendBack">返回</el-button>
|
||||
</el-row>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted, nextTick } from "vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import {
|
||||
assetOfficialAccount,
|
||||
assetOfficialAccountInfo,
|
||||
unitAllList,
|
||||
} from "@/api/auditPagesApi/index";
|
||||
import equalToPassword from "@/views/components/assetsType/mainx.js";
|
||||
import { useDict } from "@/utils/dict";
|
||||
const {
|
||||
app_xzqh,
|
||||
app_sshy,
|
||||
app_zdhy,
|
||||
gzh_state,
|
||||
gzh_lx,
|
||||
gzh_rzzt,
|
||||
gzh_rzlx,
|
||||
gzh_cdlx,
|
||||
sys_ptlx_type,
|
||||
} = useDict(
|
||||
"app_xzqh",
|
||||
"app_sshy",
|
||||
"app_zdhy",
|
||||
"gzh_state",
|
||||
"gzh_lx",
|
||||
"gzh_rzzt",
|
||||
"gzh_rzlx",
|
||||
"gzh_cdlx",
|
||||
"sys_ptlx_type"
|
||||
);
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const ruleFormRef = ref(null);
|
||||
|
||||
// 从route获取参数
|
||||
const pageType = route.query.pageType || route.params.pageType;
|
||||
const id = route.query.id || route.params.id;
|
||||
const queryData = route.query || route.params;
|
||||
|
||||
const loading = ref(false);
|
||||
const disabled = ref(false);
|
||||
|
||||
const ruleForm = reactive({
|
||||
ptlx: "1",
|
||||
cdList: [
|
||||
{
|
||||
cdmc: "",
|
||||
cdlj: "",
|
||||
cdlx: "",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const rules = reactive({
|
||||
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
|
||||
ssdw: [
|
||||
{ required: true, message: "所属单位不能为空", trigger: "blur" },
|
||||
{ required: true, validator: equalToPassword, trigger: "change" },
|
||||
],
|
||||
});
|
||||
|
||||
// 字典数据
|
||||
const dict = {
|
||||
type: {
|
||||
app_xzqh: [],
|
||||
app_sshy: [],
|
||||
app_zdhy: [],
|
||||
gzh_state: [],
|
||||
gzh_lx: [],
|
||||
gzh_rzzt: [],
|
||||
gzh_rzlx: [],
|
||||
gzh_cdlx: [],
|
||||
sys_ptlx_type: [],
|
||||
},
|
||||
};
|
||||
|
||||
function changeSateTetx(rule, value, callback) {
|
||||
if (ruleForm.gzhzt == 7 && !value) {
|
||||
callback(new Error("请填写"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
function changeState(e) {
|
||||
if (e != 7) {
|
||||
ruleForm.bfyy = "";
|
||||
}
|
||||
}
|
||||
|
||||
function removeDomain(item, type) {
|
||||
const index = ruleForm[type].indexOf(item);
|
||||
if (index !== -1) {
|
||||
ruleForm[type].splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
function addOtherConcat(type) {
|
||||
ruleForm[type].push({
|
||||
cdmc: "",
|
||||
cdlj: "",
|
||||
cdlx: "",
|
||||
});
|
||||
}
|
||||
|
||||
async function getInfo(id) {
|
||||
try {
|
||||
const res = await assetOfficialAccountInfo(id);
|
||||
Object.assign(ruleForm, res.data);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
}
|
||||
|
||||
function ptlxChange(item) {
|
||||
Object.keys(ruleForm).forEach((key) => {
|
||||
if (key == "cdList") {
|
||||
ruleForm[key] = [];
|
||||
return;
|
||||
}
|
||||
if (key !== "ssdw" && key !== "ptlx") {
|
||||
ruleForm[key] = "";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function querySearchAsync(queryString, cb) {
|
||||
try {
|
||||
const res = await unitAllList({ nickName: queryString });
|
||||
const results = res.data.map((item) => ({
|
||||
value: item.nickName,
|
||||
id: item.id,
|
||||
}));
|
||||
cb(results);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
cb([]);
|
||||
}
|
||||
}
|
||||
|
||||
async function newAssets() {
|
||||
if (!ruleFormRef.value) return;
|
||||
|
||||
const valid = await ruleFormRef.value.validate().catch(() => false);
|
||||
if (valid) {
|
||||
loading.value = true;
|
||||
try {
|
||||
if (pageType == "change") {
|
||||
await assetOfficialAccount("put", ruleForm);
|
||||
ElMessage.success("修改成功");
|
||||
router.push({
|
||||
name: "OfficialAccount",
|
||||
params: queryData,
|
||||
});
|
||||
} else {
|
||||
await assetOfficialAccount("post", ruleForm);
|
||||
ElMessage.success("新增成功");
|
||||
router.go(-1);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function sendBack() {
|
||||
router.push({ path: "/assetsManage2/gzhZC", params: queryData });
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
if (pageType == "look") {
|
||||
await getInfo(id);
|
||||
disabled.value = true;
|
||||
await 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 (pageType == "change") {
|
||||
await getInfo(id);
|
||||
disabled.value = false;
|
||||
}
|
||||
loading.value = false;
|
||||
});
|
||||
</script>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue