电子邮件,移动应用

main
严飞永 1 day ago
parent 6b2fd3520f
commit 354c0c99fc

@ -21,16 +21,16 @@
<div class="L-main" id="L-size-main"> <div class="L-main" id="L-size-main">
<div class="content-search" id="L-header"> <div class="content-search" id="L-header">
<div class="search-title">查询条件</div> <div class="search-title">查询条件</div>
<el-form :inline="true" ref="queryFormRef" :model="formInline" size="small" class="demo-form-inline"> <el-form :inline="true" ref="queryFormRef" :model="formInline" class="demo-form-inline">
<el-row> <el-row>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="所属单位:" prop="dwmc"> <el-form-item label="所属单位:" prop="dwmc">
<el-input v-model="formInline.dwmc" placeholder="请输入所属单位"></el-input> <el-input v-model="formInline.dwmc" placeholder="请输入所属单位" style="width: 95%;"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="移动应用名称:" prop="yymc"> <el-form-item label="移动应用名称:" prop="yymc">
<el-input v-model="formInline.yymc" placeholder="请输入移动应用名称"></el-input> <el-input v-model="formInline.yymc" placeholder="请输入移动应用名称" style="width: 95%;"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
@ -49,8 +49,8 @@
</el-col> </el-col>
<el-col :span="6" style="text-align: right;"> <el-col :span="6" style="text-align: right;">
<el-form-item class="unit-form"> <el-form-item class="unit-form">
<el-button size="small" @click="resetQuery('queryFrom')"></el-button> <el-button @click="resetQuery('queryFrom')"></el-button>
<el-button size="small" type="primary" @click="handleQuery('queryFrom')"></el-button> <el-button type="primary" @click="handleQuery('queryFrom')"></el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -90,7 +90,7 @@
type="info" type="info"
plain plain
:icon="Upload" :icon="Upload"
size="small"
@click="handleImport" @click="handleImport"
>导入</el-button> >导入</el-button>
</el-col> </el-col>
@ -99,7 +99,7 @@
type="warning" type="warning"
plain plain
:icon="Download" :icon="Download"
size="small"
@click="handleExport" @click="handleExport"
>导出</el-button> >导出</el-button>
</el-col> </el-col>
@ -108,7 +108,7 @@
type="primary" type="primary"
plain plain
:icon="Plus" :icon="Plus"
size="small"
@click="handleAdd" @click="handleAdd"
>新增资产</el-button> >新增资产</el-button>
</el-col> </el-col>

@ -9,7 +9,7 @@
<el-form <el-form
:model="ruleForm" :model="ruleForm"
:rules="rules" :rules="rules"
ref="ruleForm" ref="ruleFormRef"
label-width="170px" label-width="170px"
class="demo-ruleForm" class="demo-ruleForm"
label-position="right" label-position="right"
@ -17,9 +17,10 @@
> >
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属单位" prop="ssdw"> <el-form-item
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入单位名称"></el-input> --> label="所属单位"
<!-- :disabled="!disabledTwo" --> prop="ssdw"
>
<el-autocomplete <el-autocomplete
v-model="ruleForm.ssdw" v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync" :fetch-suggestions="querySearchAsync"
@ -28,7 +29,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="电子邮箱后缀" prop="dzyxhz"> <el-form-item
label="电子邮箱后缀"
prop="dzyxhz"
>
<el-input <el-input
v-model="ruleForm.dzyxhz" v-model="ruleForm.dzyxhz"
placeholder="请输入电子邮箱后缀" placeholder="请输入电子邮箱后缀"
@ -38,10 +42,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="建设类型" required> <el-form-item
<el-select v-model="ruleForm.jslx" placeholder="请选择建设类型"> label="建设类型"
required
>
<el-select
v-model="ruleForm.jslx"
placeholder="请选择建设类型"
>
<el-option <el-option
v-for="dict in dict.type.email_jslx" v-for="dict in email_jslx"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -50,7 +60,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="邮件系统供应商" required> <el-form-item
label="邮件系统供应商"
required
>
<el-input <el-input
v-model="ruleForm.yjxtgys" v-model="ruleForm.yjxtgys"
style="width: 100%" style="width: 100%"
@ -61,7 +74,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="密码算法" required> <el-form-item
label="密码算法"
required
>
<el-input <el-input
v-model="ruleForm.mmsf" v-model="ruleForm.mmsf"
placeholder="请输入密码算法" placeholder="请输入密码算法"
@ -69,14 +85,17 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="邮件系统状态" required> <el-form-item
label="邮件系统状态"
required
>
<el-select <el-select
@change="changeState" @change="changeState"
v-model="ruleForm.yjxtzc" v-model="ruleForm.yjxtzc"
placeholder="请选择邮件系统状态" placeholder="请选择邮件系统状态"
> >
<el-option <el-option
v-for="dict in dict.type.email_state" v-for="dict in email_state"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -87,13 +106,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="安全防护系统" required> <el-form-item
label="安全防护系统"
required
>
<el-select <el-select
v-model="ruleForm.aqfhxt" v-model="ruleForm.aqfhxt"
placeholder="请选择安全防护系统" placeholder="请选择安全防护系统"
> >
<el-option <el-option
v-for="dict in dict.type.email_hasorno" v-for="dict in email_hasorno"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -102,13 +124,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="安全备份环境" required> <el-form-item
label="安全备份环境"
required
>
<el-select <el-select
v-model="ruleForm.aqbfhj" v-model="ruleForm.aqbfhj"
placeholder="请选择安全备份环境" placeholder="请选择安全备份环境"
> >
<el-option <el-option
v-for="dict in dict.type.email_hasorno" v-for="dict in email_hasorno"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -119,7 +144,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="数字证书厂商" required> <el-form-item
label="数字证书厂商"
required
>
<el-input <el-input
v-model="ruleForm.szzscs" v-model="ruleForm.szzscs"
style="width: 100%" style="width: 100%"
@ -128,7 +156,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="上线时间" required> <el-form-item
label="上线时间"
required
>
<el-date-picker <el-date-picker
v-model="ruleForm.sxsj" v-model="ruleForm.sxsj"
type="date" type="date"
@ -142,10 +173,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属行业" required> <el-form-item
<el-select v-model="ruleForm.sshy" placeholder="请选择所属行业"> label="所属行业"
required
>
<el-select
v-model="ruleForm.sshy"
placeholder="请选择所属行业"
>
<el-option <el-option
v-for="dict in dict.type.app_sshy" v-for="dict in app_sshy"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -154,10 +191,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="重点行业" required> <el-form-item
<el-select v-model="ruleForm.zdhy" placeholder="请选择重点行业"> label="重点行业"
required
>
<el-select
v-model="ruleForm.zdhy"
placeholder="请选择重点行业"
>
<el-option <el-option
v-for="dict in dict.type.app_zdhy" v-for="dict in app_zdhy"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -168,10 +211,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="行政区划" required> <el-form-item
<el-select v-model="ruleForm.xzqh" placeholder="请选择行政区划"> label="行政区划"
required
>
<el-select
v-model="ruleForm.xzqh"
placeholder="请选择行政区划"
>
<el-option <el-option
v-for="dict in dict.type.app_xzqh" v-for="dict in app_xzqh"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -180,7 +229,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="系统责任人" required> <el-form-item
label="系统责任人"
required
>
<el-input <el-input
v-model="ruleForm.xtzrr" v-model="ruleForm.xtzrr"
style="width: 100%" style="width: 100%"
@ -191,49 +243,52 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="系统责任人电话" required> <el-form-item
<el-form-item label="系统责任人电话"
prop="xtzrrdh" required
:rules="[ prop="xtzrrdh"
{ :rules="[
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, {
message: '请输入正确的手机号码', pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
trigger: 'blur', message: '请输入正确的手机号码',
}, trigger: 'blur',
]" },
> ]"
<el-input >
v-model="ruleForm.xtzrrdh" <el-input
style="width: 100%" v-model="ruleForm.xtzrrdh"
placeholder="请输入系统责任人电话" style="width: 100%"
></el-input> placeholder="请输入系统责任人电话"
</el-form-item> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="系统责任人邮箱" required> <el-form-item
<el-form-item label="系统责任人邮箱"
prop="xtzrryx" required
:rules="[ prop="xtzrryx"
{ :rules="[
type: 'email', {
message: '请输入正确的邮箱地址', type: 'email',
trigger: ['blur', 'change'], message: '请输入正确的邮箱地址',
}, trigger: ['blur', 'change'],
]" },
> ]"
<el-input >
v-model="ruleForm.xtzrryx" <el-input
style="width: 100%" v-model="ruleForm.xtzrryx"
placeholder="请输入系统责任人邮箱" style="width: 100%"
></el-input> placeholder="请输入系统责任人邮箱"
</el-form-item> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="系统责任人地址" required> <el-form-item
label="系统责任人地址"
required
>
<el-input <el-input
v-model="ruleForm.xtzrrdz" v-model="ruleForm.xtzrrdz"
style="width: 100%" style="width: 100%"
@ -261,7 +316,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="简介" required> <el-form-item
label="简介"
required
>
<el-input <el-input
type="textarea" type="textarea"
resize="none" resize="none"
@ -272,27 +330,42 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row <div
style="margin: 10px 0; padding-bottom: 50px; text-align: center" style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType !== 'look'" v-if="pageType !== 'look'"
> >
<el-button type="danger" @click="sendBack"></el-button> <el-button
<el-button type="primary" @click="newAssets" :loading="loading" type="danger"
@click="sendBack"
>取消</el-button
>
<el-button
type="primary"
@click="newAssets"
:loading="loading"
>保存</el-button >保存</el-button
> >
</el-row> </div>
</el-form> </el-form>
<el-row <div
style="margin: 10px 0; padding-bottom: 50px; text-align: center" style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'" v-if="pageType == 'look'"
> >
<el-button type="primary" @click="sendBack"></el-button> <el-button
</el-row> type="primary"
@click="sendBack"
>返回</el-button
>
</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script>
<script setup>
import { ref, onMounted, nextTick } from "vue";
import { useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import { import {
assetEmail, assetEmail,
assetEmailInfo, assetEmailInfo,
@ -300,115 +373,123 @@ import {
} from "@/api/auditPagesApi/index"; } from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js"; import equalToPassword from "@/views/components/assetsType/mainx.js";
export default { const props = defineProps({
dicts: [ pageType: String,
"app_xzqh", id: String,
"app_sshy", queryData: Object,
"app_zdhy", });
const router = useRouter();
const { proxy } = getCurrentInstance();
const { email_jslx, email_state, email_hasorno, app_sshy, app_zdhy, app_xzqh } =
proxy.useDict(
"email_jslx", "email_jslx",
"email_state", "email_state",
"email_hasorno", "email_hasorno",
"app_sshy",
"app_zdhy",
"app_xzqh"
);
const ruleFormRef = ref(null);
const ruleForm = ref({});
const loading = ref(false);
const disabled = ref(false);
const changeSateTetx = (rule, value, callback) => {
if (ruleForm.value.yjxtzc == 2 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
const rules = ref({
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
], ],
data() { dzyxhz: [
const changeSateTetx = (rule, value, callback) => { { required: true, message: "电子邮箱后缀不能为空", trigger: "blur" },
if (this.ruleForm.yjxtzc == 2 && !value) { ],
callback(new Error("请填写")); });
} else {
callback(); onMounted(() => {
} if (props.pageType == "look") {
}; getInfo(props.id);
return { disabled.value = true;
ruleForm: {}, nextTick(() => {
rules: { const inputElements = document.querySelectorAll(".el-input__inner");
bfyy: [{ validator: changeSateTetx, trigger: "blur" }], const textareaInputElements = document.querySelectorAll(
ssdw: [ ".el-textarea__inner"
{ required: true, message: "所属单位不能为空", trigger: "blur" }, );
{ required: true, validator: equalToPassword, trigger: "change" }, inputElements.forEach((input) => {
], input.placeholder = "";
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); textareaInputElements.forEach((input) => {
}, input.placeholder = "";
//
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() { } else if (props.pageType == "change") {
// this.$router.go(-1); getInfo(props.id);
this.$router.push({ name: "Email", params: this.queryData }); disabled.value = false;
}, }
}, });
const changeState = (e) => {
if (e != 2) {
ruleForm.value.bfyy = "";
}
};
const getInfo = async (id) => {
try {
const res = await assetEmailInfo(id);
ruleForm.value = res.data;
} catch (error) {
console.error(error);
}
};
const querySearchAsync = async (queryString, cb) => {
let results = [];
try {
const res = await unitAllList({ nickName: queryString });
results = res.data.map((item) => ({
value: item.nickName,
id: item.id,
}));
cb(results);
} catch (error) {
console.error(error);
cb(results);
}
};
const newAssets = async () => {
try {
await ruleFormRef.value.validate();
loading.value = true;
if (props.pageType == "change") {
await assetEmail("put", ruleForm.value);
ElMessage.success("修改成功");
router.push({ name: "Email", params: props.queryData });
} else {
await assetEmail("post", ruleForm.value);
ElMessage.success("新增成功");
router.go(-1);
}
} catch (error) {
console.error(error);
} finally {
loading.value = false;
}
};
const sendBack = () => {
router.push({ name: "Email", params: props.queryData });
}; };
</script> </script>

@ -9,7 +9,7 @@
<el-form <el-form
:model="ruleForm" :model="ruleForm"
:rules="rules" :rules="rules"
ref="ruleForm" ref="ruleFormRef"
label-width="170px" label-width="170px"
class="demo-ruleForm" class="demo-ruleForm"
label-position="right" label-position="right"
@ -17,9 +17,11 @@
> >
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属单位" required prop="ssdw"> <el-form-item
<!-- <el-input v-model="ruleForm.ssdw" placeholder="请输入单位名称"></el-input> --> label="所属单位"
<!-- :disabled="!disabledTwo" --> required
prop="ssdw"
>
<el-autocomplete <el-autocomplete
v-model="ruleForm.ssdw" v-model="ruleForm.ssdw"
:fetch-suggestions="querySearchAsync" :fetch-suggestions="querySearchAsync"
@ -28,7 +30,11 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="移动应用名称" required prop="appName"> <el-form-item
label="移动应用名称"
required
prop="appName"
>
<el-input <el-input
v-model="ruleForm.appName" v-model="ruleForm.appName"
placeholder="请输入移动应用名称" placeholder="请输入移动应用名称"
@ -38,7 +44,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="包名" required> <el-form-item
label="包名"
required
>
<el-input <el-input
v-model="ruleForm.pack" v-model="ruleForm.pack"
style="width: 100%" style="width: 100%"
@ -47,13 +56,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="icp备案状态" required> <el-form-item
label="icp备案状态"
required
>
<el-select <el-select
v-model="ruleForm.icpState" v-model="ruleForm.icpState"
placeholder="请选择icp备案状态" placeholder="请选择icp备案状态"
> >
<el-option <el-option
v-for="dict in dict.type.app_icp_state" v-for="dict in app_icp_state"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -64,7 +76,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="icp备案号" required> <el-form-item
label="icp备案号"
required
>
<el-input <el-input
v-model="ruleForm.icpbah" v-model="ruleForm.icpbah"
placeholder="请输入icp备案号" placeholder="请输入icp备案号"
@ -76,28 +91,28 @@
class="daoqitixingren" class="daoqitixingren"
label="统一社会信用代码" label="统一社会信用代码"
required required
prop="tyshxydm"
:rules="[
{
pattern: /^[a-zA-Z0-9]{18}$/,
message: '请输入正确格式的18位统一社会信用代码',
trigger: 'blur',
},
]"
> >
<el-form-item <el-input
prop="tyshxydm" v-model="ruleForm.tyshxydm"
:rules="[ placeholder="请输入统一信用代码"
{ ></el-input>
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-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文件名" required> <el-form-item
label="文件名"
required
>
<el-input <el-input
v-model="ruleForm.wjm" v-model="ruleForm.wjm"
placeholder="请输入文件名" placeholder="请输入文件名"
@ -105,10 +120,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="所属行业" required> <el-form-item
<el-select v-model="ruleForm.sshy" placeholder="请选择所属行业"> label="所属行业"
required
>
<el-select
v-model="ruleForm.sshy"
placeholder="请选择所属行业"
>
<el-option <el-option
v-for="dict in dict.type.app_sshy" v-for="dict in app_sshy"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -119,10 +140,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="重点行业" required> <el-form-item
<el-select v-model="ruleForm.zdhy" placeholder="请选择重点行业"> label="重点行业"
required
>
<el-select
v-model="ruleForm.zdhy"
placeholder="请选择重点行业"
>
<el-option <el-option
v-for="dict in dict.type.app_zdhy" v-for="dict in app_zdhy"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -131,10 +158,16 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="行政区划" required> <el-form-item
<el-select v-model="ruleForm.xzqh" placeholder="请选择行政区划"> label="行政区划"
required
>
<el-select
v-model="ruleForm.xzqh"
placeholder="请选择行政区划"
>
<el-option <el-option
v-for="dict in dict.type.app_xzqh" v-for="dict in app_xzqh"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -145,13 +178,16 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="安全加固情况" required> <el-form-item
label="安全加固情况"
required
>
<el-select <el-select
v-model="ruleForm.aqjgqk" v-model="ruleForm.aqjgqk"
placeholder="请选择安全加固情况" placeholder="请选择安全加固情况"
> >
<el-option <el-option
v-for="dict in dict.type.app_aqjgqk" v-for="dict in app_aqjgqk"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -160,7 +196,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="版本信息" required> <el-form-item
label="版本信息"
required
>
<el-input <el-input
v-model="ruleForm.bbxx" v-model="ruleForm.bbxx"
style="width: 100%" style="width: 100%"
@ -171,7 +210,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="版本信息(版本号)" required> <el-form-item
label="版本信息(版本号)"
required
>
<el-input <el-input
v-model="ruleForm.bbh" v-model="ruleForm.bbh"
style="width: 100%" style="width: 100%"
@ -180,7 +222,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="版本信息MD5" required> <el-form-item
label="版本信息MD5"
required
>
<el-input <el-input
v-model="ruleForm.bbxxMd5" v-model="ruleForm.bbxxMd5"
style="width: 100%" style="width: 100%"
@ -191,7 +236,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="版本信息(上架平台)" required> <el-form-item
label="版本信息(上架平台)"
required
>
<el-input <el-input
v-model="ruleForm.bbxxSjpt" v-model="ruleForm.bbxxSjpt"
style="width: 100%" style="width: 100%"
@ -200,7 +248,10 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文件大小" required> <el-form-item
label="文件大小"
required
>
<el-input <el-input
v-model="ruleForm.wjdx" v-model="ruleForm.wjdx"
style="width: 100%" style="width: 100%"
@ -211,14 +262,17 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="移动应用系统状态" required> <el-form-item
label="移动应用系统状态"
required
>
<el-select <el-select
v-model="ruleForm.appState" v-model="ruleForm.appState"
placeholder="请选择移动应用系统状态" placeholder="请选择移动应用系统状态"
@change="changeState" @change="changeState"
> >
<el-option <el-option
v-for="dict in dict.type.gzh_state" v-for="dict in gzh_state"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -246,7 +300,10 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="简介" required> <el-form-item
label="简介"
required
>
<el-input <el-input
type="textarea" type="textarea"
resize="none" resize="none"
@ -257,143 +314,169 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row <div
style="margin: 10px 0; padding-bottom: 30px; text-align: center" style="margin: 10px 0; padding-bottom: 30px; text-align: center"
v-if="pageType !== 'look'" v-if="pageType !== 'look'"
> >
<el-button type="danger" @click="sendBack"></el-button> <el-button
<el-button type="primary" @click="newAssets" :loading="loading" type="danger"
@click="sendBack"
>取消</el-button
>
<el-button
type="primary"
@click="newAssets"
:loading="loading"
>保存</el-button >保存</el-button
> >
</el-row> </div>
</el-form> </el-form>
<el-row <div
style="margin: 10px 0; padding-bottom: 50px; text-align: center" style="margin: 10px 0; padding-bottom: 50px; text-align: center"
v-if="pageType == 'look'" v-if="pageType == 'look'"
> >
<el-button type="primary" @click="sendBack"></el-button> <el-button
</el-row> type="primary"
@click="sendBack"
>返回</el-button
>
</div>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script>
<script setup>
import { ref, onMounted, nextTick } from "vue";
import { useRouter } from "vue-router";
import { ElMessage } from "element-plus";
import { assetApp, assetAppInfo, unitAllList } from "@/api/auditPagesApi/index"; import { assetApp, assetAppInfo, unitAllList } from "@/api/auditPagesApi/index";
import equalToPassword from "@/views/components/assetsType/mainx.js"; import equalToPassword from "@/views/components/assetsType/mainx.js";
export default { const props = defineProps({
dicts: [ pageType: String,
id: String,
queryData: Object,
});
const router = useRouter();
const { proxy } = getCurrentInstance();
const { app_icp_state, app_sshy, app_zdhy, app_xzqh, app_aqjgqk, gzh_state } =
proxy.useDict(
"app_icp_state", "app_icp_state",
"app_sshy", "app_sshy",
"app_zdhy", "app_zdhy",
"app_xzqh", "app_xzqh",
"app_aqjgqk", "app_aqjgqk",
"gzh_state", "gzh_state"
);
// Initialize your dicts here or fetch them from API
const ruleFormRef = ref(null);
const ruleForm = ref({});
const loading = ref(false);
const disabled = ref(false);
const changeSateTetx = (rule, value, callback) => {
if (ruleForm.value.appState == 7 && !value) {
callback(new Error("请填写"));
} else {
callback();
}
};
const rules = {
bfyy: [{ validator: changeSateTetx, trigger: "blur" }],
ssdw: [
{ required: true, message: "所属单位不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "change" },
],
appName: [
{ required: true, message: "移动应用名称不能为空", trigger: "blur" },
], ],
data() { };
const changeSateTetx = (rule, value, callback) => {
if (this.ruleForm.appState == 7 && !value) { const changeState = (e) => {
callback(new Error("请填写")); if (e != 7) {
ruleForm.value.bfyy = "";
}
};
const getInfo = async (id) => {
try {
const res = await assetAppInfo(id);
ruleForm.value = res.data;
} catch (error) {
console.error("Error fetching asset info:", error);
}
};
//
const querySearchAsync = async (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 fetching unit list:", error);
cb([]);
}
};
//
const newAssets = async () => {
try {
const valid = await ruleFormRef.value.validate();
if (valid) {
loading.value = true;
if (props.pageType == "change") {
await assetApp("put", ruleForm.value);
ElMessage.success("修改成功");
router.push({
name: "MobileApplication",
params: props.queryData,
});
} else { } else {
callback(); await assetApp("post", ruleForm.value);
ElMessage.success("新增成功");
router.go(-1);
} }
};
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;
} }
}, } catch (error) {
methods: { console.error("Error saving asset:", error);
changeState(e) { } finally {
if (e != 7) { loading.value = false;
this.ruleForm.bfyy = ""; }
} };
},
getInfo(id) { const sendBack = () => {
assetAppInfo(id).then((res) => { router.push({ name: "MobileApplication", params: props.queryData });
this.ruleForm = res.data; };
});
}, onMounted(() => {
// if (props.pageType == "look") {
querySearchAsync(queryString, cb) { getInfo(props.id);
let results = []; disabled.value = true;
unitAllList({ nickName: queryString }).then((res) => { nextTick(() => {
res.data.forEach((item) => { const inputElements = document.querySelectorAll(".el-input__inner");
results.push({ const textareaInputElements = document.querySelectorAll(
value: item.nickName, ".el-textarea__inner"
id: item.id, );
}); inputElements.forEach((input) => {
}); input.placeholder = "";
}); });
cb(results); textareaInputElements.forEach((input) => {
}, input.placeholder = "";
//
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() { } else if (props.pageType == "change") {
// this.$router.go(-1); getInfo(props.id);
this.$router.push({ name: "MobileApplication", params: this.queryData }); disabled.value = false;
}, }
}, });
};
</script> </script>

Loading…
Cancel
Save