|
@@ -1,207 +1,254 @@
|
|
<template>
|
|
<template>
|
|
- <el-dialog v-model="state.dialogVisible" width="50%" draggable title="编辑行业" destroy-on-close append-to-body @close="close">
|
|
|
|
- <template #header>
|
|
|
|
- <el-tabs v-model="state.activeName">
|
|
|
|
- <el-tab-pane :name="item.name" v-for="item in state.tabPaneList" :key="item.name" :label="item.label"></el-tab-pane>
|
|
|
|
- </el-tabs>
|
|
|
|
- </template>
|
|
|
|
- <el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef" :disabled="loading">
|
|
|
|
- <el-row :gutter="10" v-show="state.activeName === '0'">
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="行业名称" prop="name" :rules="[{ required: true, message: '请填写行业名称', trigger: 'blur' }]">
|
|
|
|
- <el-input v-model="state.ruleForm.name" placeholder="请填写行业名称" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="市民红包" prop="citizenReadPackAmount" :rules="[{ required: true, message: '请填写市民红包', trigger: 'blur' }]">
|
|
|
|
- <el-input-number v-model="state.ruleForm.citizenReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写市民红包"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="网格员红包" prop="guiderReadPackAmount" :rules="[{ required: true, message: '请填写网格员红包', trigger: 'blur' }]">
|
|
|
|
- <el-input-number v-model="state.ruleForm.guiderReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写网格员红包"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="阶段性回复间隔时间" prop="intervalTime" label-width="150px" :rules="[{ required: false, message: '请填写阶段性回复间隔时间', trigger: 'blur' }]">
|
|
|
|
- <el-input type="number" v-model="state.ruleForm.intervalTime" placeholder="请填写阶段性回复间隔时间">
|
|
|
|
- <template #suffix>
|
|
|
|
- 小时
|
|
|
|
- </template>
|
|
|
|
- </el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="审批部门" prop="approveOrgId" :rules="[{ required: false, message: '请选择审批部门', trigger: 'change' }]">
|
|
|
|
- <el-select v-model="state.ruleForm.approveOrgId" placeholder="请选择审批部门" class="w100">
|
|
|
|
- <el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="关联宣传学习" prop="bulletinTypePublicityId" :rules="[{ required: false, message: '请选择关联宣传学习', trigger: 'change' }]">
|
|
|
|
- <el-select v-model="state.ruleForm.bulletinTypePublicityId" placeholder="请选择关联宣传学习" class="w100">
|
|
|
|
- <el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="关联操作指引" prop="bulletinTypeGuideId" :rules="[{ required: false, message: '请选择关联操作指引', trigger: 'change' }]">
|
|
|
|
- <el-select v-model="state.ruleForm.bulletinTypeGuideId" placeholder="请选择关联操作指引" class="w100">
|
|
|
|
- <el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="关联受理类型" prop="acceptTypeCode" :rules="[{ required: false, message: '请选择关联受理类型', trigger: 'change' }]">
|
|
|
|
- <el-select v-model="state.ruleForm.acceptTypeCode" placeholder="请选择关联受理类型" class="w100">
|
|
|
|
- <el-option v-for="item in state.genderOptions" :key="item.key" :label="item.value" :value="item.key" />
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="标题追加信息" prop="titleSuffix" :rules="[{ required: false, message: '请填写标题追加信息', trigger: 'blur' }]">
|
|
|
|
- <el-input v-model="state.ruleForm.titleSuffix" placeholder="请填写标题追加信息" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="系统状态" prop="isEnable">
|
|
|
|
- <el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="小程序状态" prop="isAffix">
|
|
|
|
- <el-switch v-model="state.ruleForm.isAffix" inline-prompt active-text="启用" inactive-text="禁用" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="排序" prop="displayOrder" :rules="[{ required: false, message: '请填写排序', trigger: 'blur' }]">
|
|
|
|
- <el-input-number v-model="state.ruleForm.displayOrder" :min="1" :precision="0" class="w100"/>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col>
|
|
|
|
- <el-form-item label="页面Url" prop="pageUrl" :rules="[{ required: false, message: '请填写页面Url', trigger: 'blur' }]">
|
|
|
|
- <el-input v-model="state.ruleForm.pageUrl" placeholder="请填写页面Url" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col>
|
|
|
|
- <el-form-item label="关怀页面Ur" prop="pageCareUrl" :rules="[{ false: true, message: '请填写关怀页面Ur', trigger: 'blur' }]">
|
|
|
|
- <el-input v-model="state.ruleForm.pageCareUrl" placeholder="请填写关怀页面Ur" clearable></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
|
- <el-form-item label="帮助引导用语" prop="txtHelpRemarks" :rules="[{ required: false, message: '请填写帮助引导用语', trigger: 'blur' }]">
|
|
|
|
- <el-input
|
|
|
|
- type="textarea"
|
|
|
|
- :autosize="{ minRows: 6, maxRows: 10 }"
|
|
|
|
- v-model="state.ruleForm.txtHelpRemarks"
|
|
|
|
- placeholder="请填写帮助引导用语"
|
|
|
|
- clearable
|
|
|
|
- ></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
|
- <el-form-item label="宫格说明文本" prop="txtRemarks" :rules="[{ required: false, message: '请填写宫格说明文本', trigger: 'blur' }]">
|
|
|
|
- <el-input
|
|
|
|
- type="textarea"
|
|
|
|
- :autosize="{ minRows: 6, maxRows: 10 }"
|
|
|
|
- v-model="state.ruleForm.txtRemarks"
|
|
|
|
- placeholder="请填写宫格说明文本"
|
|
|
|
- clearable
|
|
|
|
- ></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
|
- <el-form-item label="关怀说明" prop="txtCareRemarks" :rules="[{ required: false, message: '请填写关怀说明', trigger: 'blur' }]">
|
|
|
|
- <el-input
|
|
|
|
- type="textarea"
|
|
|
|
- :autosize="{ minRows: 6, maxRows: 10 }"
|
|
|
|
- v-model="state.ruleForm.txtCareRemarks"
|
|
|
|
- placeholder="请填写关怀说明"
|
|
|
|
- clearable
|
|
|
|
- ></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
-
|
|
|
|
- </el-row>
|
|
|
|
- <el-row v-show="state.activeName === '1'">
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="背景图片" prop="settingName">
|
|
|
|
- <el-upload
|
|
|
|
- class="avatar-uploader"
|
|
|
|
- :action="action"
|
|
|
|
- :show-file-list="false"
|
|
|
|
- :on-success="updateSuccess"
|
|
|
|
- ref="uploadListRef"
|
|
|
|
- name="fileData"
|
|
|
|
- >
|
|
|
|
- <img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
|
|
|
|
- <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
|
|
|
|
- </el-upload>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="banner设置" prop="settingName">
|
|
|
|
- <el-upload
|
|
|
|
- class="avatar-uploader"
|
|
|
|
- :action="action"
|
|
|
|
- :show-file-list="false"
|
|
|
|
- >
|
|
|
|
- <img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
|
|
|
|
- <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
|
|
|
|
- </el-upload>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="宫格图" prop="settingName">
|
|
|
|
- <el-upload
|
|
|
|
- class="avatar-uploader"
|
|
|
|
- :action="action"
|
|
|
|
- :show-file-list="false"
|
|
|
|
- >
|
|
|
|
- <img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
|
|
|
|
- <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
|
|
|
|
- </el-upload>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
- <el-form-item label="关怀宫格图" prop="settingName">
|
|
|
|
- <el-upload
|
|
|
|
- class="avatar-uploader"
|
|
|
|
- :action="action"
|
|
|
|
- :show-file-list="false"
|
|
|
|
- >
|
|
|
|
- <img v-if="imageUrl" :src="imageUrl" class="avatar" alt=""/>
|
|
|
|
- <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus"/>
|
|
|
|
- </el-upload>
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col>
|
|
|
|
- <el-form-item label="附件">
|
|
|
|
- <annex-list classify="行业管理上传" v-model="state.ruleForm.files" v-model:format="filesFormat" />
|
|
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- <el-row v-show="state.activeName === '2'">
|
|
|
|
-
|
|
|
|
- </el-row>
|
|
|
|
- </el-form>
|
|
|
|
- <template #footer>
|
|
|
|
- <span class="dialog-footer">
|
|
|
|
- <el-button @click="closeDialog" class="default-button">取 消</el-button>
|
|
|
|
- <el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定</el-button>
|
|
|
|
- </span>
|
|
|
|
- </template>
|
|
|
|
- </el-dialog>
|
|
|
|
|
|
+ <el-dialog v-model="state.dialogVisible" width="50%" draggable title="编辑行业" destroy-on-close append-to-body @close="close">
|
|
|
|
+ <template #header>
|
|
|
|
+ <el-tabs v-model="state.activeName">
|
|
|
|
+ <el-tab-pane :name="item.name" v-for="item in state.tabPaneList" :key="item.name" :label="item.label"></el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
|
|
+ </template>
|
|
|
|
+ <el-form :model="state.ruleForm" label-width="110px" ref="ruleFormRef">
|
|
|
|
+ <el-row :gutter="10" v-show="state.activeName === '0'">
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="行业名称" prop="name" :rules="[{ required: true, message: '请填写行业名称', trigger: 'blur' }]">
|
|
|
|
+ <el-input v-model="state.ruleForm.name" placeholder="请填写行业名称" clearable></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="市民红包" prop="citizenReadPackAmount" :rules="[{ required: true, message: '请填写市民红包', trigger: 'blur' }]">
|
|
|
|
+ <el-input-number v-model="state.ruleForm.citizenReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写市民红包" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="网格员红包" prop="guiderReadPackAmount" :rules="[{ required: true, message: '请填写网格员红包', trigger: 'blur' }]">
|
|
|
|
+ <el-input-number v-model="state.ruleForm.guiderReadPackAmount" :min="0" :precision="2" class="w100" placeholder="请填写网格员红包" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="阶段性回复间隔时间"
|
|
|
|
+ prop="intervalTime"
|
|
|
|
+ label-width="150px"
|
|
|
|
+ :rules="[{ required: false, message: '请填写阶段性回复间隔时间', trigger: 'blur' }]"
|
|
|
|
+ >
|
|
|
|
+ <el-input type="number" v-model.number="state.ruleForm.intervalTime" placeholder="请填写阶段性回复间隔时间">
|
|
|
|
+ <template #suffix> 小时 </template>
|
|
|
|
+ </el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="审批部门" prop="approveOrgId" :rules="[{ required: false, message: '请选择审批部门', trigger: 'change' }]">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="state.ruleForm.approveOrgId"
|
|
|
|
+ placeholder="请选择审批部门"
|
|
|
|
+ class="w100"
|
|
|
|
+ clearable
|
|
|
|
+ @change="selectDepartment"
|
|
|
|
+ filterable
|
|
|
|
+ >
|
|
|
|
+ <el-option v-for="item in department" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="关联宣传学习"
|
|
|
|
+ prop="bulletinTypePublicityId"
|
|
|
|
+ :rules="[{ required: false, message: '请选择关联宣传学习', trigger: 'change' }]"
|
|
|
|
+ >
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="state.ruleForm.bulletinTypePublicityId"
|
|
|
|
+ placeholder="请选择关联宣传学习"
|
|
|
|
+ class="w100"
|
|
|
|
+ clearable
|
|
|
|
+ @change="selectxc"
|
|
|
|
+ filterable
|
|
|
|
+ >
|
|
|
|
+ <el-option v-for="item in bulletinType" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="关联操作指引"
|
|
|
|
+ prop="bulletinTypeGuideId"
|
|
|
|
+ :rules="[{ required: false, message: '请选择关联操作指引', trigger: 'change' }]"
|
|
|
|
+ >
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="state.ruleForm.bulletinTypeGuideId"
|
|
|
|
+ placeholder="请选择关联操作指引"
|
|
|
|
+ class="w100"
|
|
|
|
+ clearable
|
|
|
|
+ @change="selectzy"
|
|
|
|
+ filterable
|
|
|
|
+ >
|
|
|
|
+ <el-option v-for="item in bulletinType" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="关联受理类型" prop="acceptTypeCode" :rules="[{ required: false, message: '请选择关联受理类型', trigger: 'change' }]">
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="state.ruleForm.acceptTypeCode"
|
|
|
|
+ placeholder="请选择关联受理类型"
|
|
|
|
+ class="w100"
|
|
|
|
+ clearable
|
|
|
|
+ @change="selectAcceptType"
|
|
|
|
+ filterable
|
|
|
|
+ >
|
|
|
|
+ <el-option v-for="item in acceptType" :key="item.dicDataValue" :label="item.dicDataName" :value="item.dicDataValue" />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="标题追加信息" prop="titleSuffix" :rules="[{ required: false, message: '请填写标题追加信息', trigger: 'blur' }]">
|
|
|
|
+ <el-input v-model="state.ruleForm.titleSuffix" placeholder="请填写标题追加信息" clearable></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="系统状态" prop="isEnable">
|
|
|
|
+ <el-switch v-model="state.ruleForm.isEnable" inline-prompt active-text="启用" inactive-text="禁用" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="小程序状态" prop="IsAppEnable">
|
|
|
|
+ <el-switch v-model="state.ruleForm.IsAppEnable" inline-prompt active-text="启用" inactive-text="禁用" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="排序" prop="displayOrder" :rules="[{ required: false, message: '请填写排序', trigger: 'blur' }]">
|
|
|
|
+ <el-input-number v-model="state.ruleForm.displayOrder" :min="1" :precision="0" class="w100" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col>
|
|
|
|
+ <el-form-item label="页面Url" prop="pageUrl" :rules="[{ required: false, message: '请填写页面Url', trigger: 'blur' }]">
|
|
|
|
+ <el-input v-model="state.ruleForm.pageUrl" placeholder="请填写页面Url" clearable></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col>
|
|
|
|
+ <el-form-item label="关怀页面Ur" prop="pageCareUrl" :rules="[{ false: true, message: '请填写关怀页面Ur', trigger: 'blur' }]">
|
|
|
|
+ <el-input v-model="state.ruleForm.pageCareUrl" placeholder="请填写关怀页面Ur" clearable></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
|
+ <el-form-item label="帮助引导用语" prop="txtHelpRemarks" :rules="[{ required: false, message: '请填写帮助引导用语', trigger: 'blur' }]">
|
|
|
|
+ <el-input
|
|
|
|
+ type="textarea"
|
|
|
|
+ :autosize="{ minRows: 6, maxRows: 10 }"
|
|
|
|
+ v-model="state.ruleForm.txtHelpRemarks"
|
|
|
|
+ placeholder="请填写帮助引导用语"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
|
+ <el-form-item label="宫格说明文本" prop="txtRemarks" :rules="[{ required: false, message: '请填写宫格说明文本', trigger: 'blur' }]">
|
|
|
|
+ <el-input
|
|
|
|
+ type="textarea"
|
|
|
|
+ :autosize="{ minRows: 6, maxRows: 10 }"
|
|
|
|
+ v-model="state.ruleForm.txtRemarks"
|
|
|
|
+ placeholder="请填写宫格说明文本"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
|
+ <el-form-item label="关怀说明" prop="txtCareRemarks" :rules="[{ required: false, message: '请填写关怀说明', trigger: 'blur' }]">
|
|
|
|
+ <el-input
|
|
|
|
+ type="textarea"
|
|
|
|
+ :autosize="{ minRows: 6, maxRows: 10 }"
|
|
|
|
+ v-model="state.ruleForm.txtCareRemarks"
|
|
|
|
+ placeholder="请填写关怀说明"
|
|
|
|
+ clearable
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row v-show="state.activeName === '1'">
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="背景图片">
|
|
|
|
+ <el-upload
|
|
|
|
+ class="avatar-uploader"
|
|
|
|
+ :action="action"
|
|
|
|
+ :show-file-list="false"
|
|
|
|
+ :on-success="updateSuccessBg"
|
|
|
|
+ ref="uploadListRefBg"
|
|
|
|
+ name="fileData"
|
|
|
|
+ :on-error="onUploadError"
|
|
|
|
+ >
|
|
|
|
+ <img v-if="bgUrl" :src="bgUrl" class="avatar" alt="" />
|
|
|
|
+ <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
|
|
|
|
+ </el-upload>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="banner设置">
|
|
|
|
+ <el-upload
|
|
|
|
+ class="avatar-uploader"
|
|
|
|
+ :action="action"
|
|
|
|
+ :show-file-list="false"
|
|
|
|
+ :on-success="updateSuccessBanner"
|
|
|
|
+ ref="uploadListRefBanner"
|
|
|
|
+ name="fileData"
|
|
|
|
+ :on-error="onUploadError"
|
|
|
|
+ >
|
|
|
|
+ <img v-if="bannerUrl" :src="bannerUrl" class="avatar" alt="" />
|
|
|
|
+ <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
|
|
|
|
+ </el-upload>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="宫格图">
|
|
|
|
+ <el-upload
|
|
|
|
+ class="avatar-uploader"
|
|
|
|
+ :action="action"
|
|
|
|
+ :show-file-list="false"
|
|
|
|
+ :on-success="updateSuccessCell"
|
|
|
|
+ ref="uploadListRefCell"
|
|
|
|
+ name="fileData"
|
|
|
|
+ :on-error="onUploadError"
|
|
|
|
+ >
|
|
|
|
+ <img v-if="cellImgUrl" :src="cellImgUrl" class="avatar" alt="" />
|
|
|
|
+ <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
|
|
|
|
+ </el-upload>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
|
+ <el-form-item label="关怀宫格图">
|
|
|
|
+ <el-upload
|
|
|
|
+ class="avatar-uploader"
|
|
|
|
+ :action="action"
|
|
|
|
+ :show-file-list="false"
|
|
|
|
+ :on-success="updateSuccessCareCell"
|
|
|
|
+ ref="uploadListRefCareCell"
|
|
|
|
+ name="fileData"
|
|
|
|
+ :on-error="onUploadError"
|
|
|
|
+ >
|
|
|
|
+ <img v-if="careCellImgUrl" :src="careCellImgUrl" class="avatar" alt="" />
|
|
|
|
+ <SvgIcon v-else class="avatar-uploader-icon" name="ele-Plus" size="28px" />
|
|
|
|
+ </el-upload>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col>
|
|
|
|
+ <el-form-item label="附件">
|
|
|
|
+ <annex-list classify="行业管理上传" v-model="state.ruleForm.files" v-model:format="filesFormat" />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-row v-show="state.activeName === '2'"> </el-row>
|
|
|
|
+ </el-form>
|
|
|
|
+ <template #footer>
|
|
|
|
+ <span class="dialog-footer">
|
|
|
|
+ <el-button @click="closeDialog" class="default-button">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="onSubmit(ruleFormRef)" :loading="loading">确 定</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-dialog>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts" name="parameterEdit">
|
|
<script setup lang="ts" name="parameterEdit">
|
|
-import { computed, defineAsyncComponent, reactive, ref } from 'vue';
|
|
|
|
|
|
+import { computed, defineAsyncComponent, onMounted, reactive, ref } from 'vue';
|
|
import { ElMessage, FormInstance, UploadFile, UploadFiles } from 'element-plus';
|
|
import { ElMessage, FormInstance, UploadFile, UploadFiles } from 'element-plus';
|
|
import { throttle, transformFile } from '@/utils/tools';
|
|
import { throttle, transformFile } from '@/utils/tools';
|
|
-import { modifySettings, setitngsDetail } from '@/api/system/parameter';
|
|
|
|
-import { editIndustry, getIndustryDetail } from '@/api/snapshot/config';
|
|
|
|
-
|
|
|
|
|
|
+import { baseIndustry, editIndustry, getIndustryDetail } from '@/api/snapshot/config';
|
|
|
|
|
|
const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue')); // 附件列表
|
|
const AnnexList = defineAsyncComponent(() => import('@/components/AnnexList/index.vue')); // 附件列表
|
|
// 定义子组件向父组件传值/事件
|
|
// 定义子组件向父组件传值/事件
|
|
@@ -217,8 +264,8 @@ const state = reactive<any>({
|
|
sort: 1, // 排序
|
|
sort: 1, // 排序
|
|
remark: '', // 参数说明
|
|
remark: '', // 参数说明
|
|
},
|
|
},
|
|
- activeName:'0',
|
|
|
|
- tabPaneList:[
|
|
|
|
|
|
+ activeName: '0',
|
|
|
|
+ tabPaneList: [
|
|
{
|
|
{
|
|
label: '参数配置',
|
|
label: '参数配置',
|
|
name: '0',
|
|
name: '0',
|
|
@@ -227,29 +274,117 @@ const state = reactive<any>({
|
|
label: '图片配置',
|
|
label: '图片配置',
|
|
name: '1',
|
|
name: '1',
|
|
},
|
|
},
|
|
- {
|
|
|
|
|
|
+ /* {
|
|
label: '操作权限',
|
|
label: '操作权限',
|
|
name: '3',
|
|
name: '3',
|
|
- },
|
|
|
|
|
|
+ },*/
|
|
],
|
|
],
|
|
});
|
|
});
|
|
-const imageUrl = ref('')
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// 审批部门
|
|
|
|
+const selectDepartment = (val: any) => {
|
|
|
|
+ if (val) {
|
|
|
|
+ const item = department.value.find((item: any) => item.dicDataValue === val);
|
|
|
|
+ state.ruleForm.approveOrgName = item?.dicDataName;
|
|
|
|
+ } else {
|
|
|
|
+ state.ruleForm.approveOrgName = null;
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 关联宣传学习
|
|
|
|
+const selectxc = (val: any) => {
|
|
|
|
+ if (val) {
|
|
|
|
+ const item = bulletinType.value.find((item: any) => item.dicDataValue === val);
|
|
|
|
+ state.ruleForm.bulletinTypePublicityName = item?.dicDataName;
|
|
|
|
+ } else {
|
|
|
|
+ state.ruleForm.bulletinTypePublicityName = null;
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 关联操作指引
|
|
|
|
+const selectzy = (val: any) => {
|
|
|
|
+ if (val) {
|
|
|
|
+ const item = bulletinType.value.find((item: any) => item.dicDataValue === val);
|
|
|
|
+ state.ruleForm.bulletinTypeGuideName = item?.dicDataName;
|
|
|
|
+ } else {
|
|
|
|
+ state.ruleForm.bulletinTypeGuideName = null;
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 受理类型
|
|
|
|
+const selectAcceptType = (val: any) => {
|
|
|
|
+ if (val) {
|
|
|
|
+ const item = acceptType.value.find((item: any) => item.dicDataValue === val);
|
|
|
|
+ state.ruleForm.acceptType = item?.dicDataName;
|
|
|
|
+ } else {
|
|
|
|
+ state.ruleForm.acceptType = null;
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 上传地址
|
|
const action = computed(() => {
|
|
const action = computed(() => {
|
|
return import.meta.env.VITE_API_UPLOAD_URL + '/file/upload?source=hotline';
|
|
return import.meta.env.VITE_API_UPLOAD_URL + '/file/upload?source=hotline';
|
|
});
|
|
});
|
|
-const uploadListRef = ref<RefType>(); // 上传组件ref
|
|
|
|
-// 上传成功
|
|
|
|
-const updateSuccess = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
|
|
|
|
|
+const bgUrl = ref(''); // 背景图
|
|
|
|
+const uploadListRefBg = ref<RefType>(); // 上传组件ref
|
|
|
|
+// 上传成功背景图
|
|
|
|
+const updateSuccessBg = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
|
|
|
+ if (response.result.path) {
|
|
|
|
+ // bgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
|
|
|
|
+ bgUrl.value = URL.createObjectURL(uploadFile.raw!);
|
|
|
|
+ state.ruleForm.backgroundImgUrl = response.result.path;
|
|
|
|
+ } else {
|
|
|
|
+ uploadListRefBg.value.handleRemove(uploadFile);
|
|
|
|
+ ElMessage.error('上传失败');
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// banner图
|
|
|
|
+const bannerUrl = ref('');
|
|
|
|
+const uploadListRefBanner = ref<RefType>();
|
|
|
|
+const updateSuccessBanner = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
|
|
|
+ if (response.result.path) {
|
|
|
|
+ // bannerUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
|
|
|
|
+ bannerUrl.value = URL.createObjectURL(uploadFile.raw!);
|
|
|
|
+ state.ruleForm.bannerImgUrl = response.result.path;
|
|
|
|
+ } else {
|
|
|
|
+ uploadListRefBanner.value.handleRemove(uploadFile);
|
|
|
|
+ ElMessage.error('上传失败');
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 宫格图
|
|
|
|
+const cellImgUrl = ref('');
|
|
|
|
+const uploadListRefCell = ref<RefType>();
|
|
|
|
+const updateSuccessCell = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
|
|
|
+ if (response.result.path) {
|
|
|
|
+ // cellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
|
|
|
|
+ cellImgUrl.value = URL.createObjectURL(uploadFile.raw!);
|
|
|
|
+ state.ruleForm.cellImgUrl = response.result.path;
|
|
|
|
+ } else {
|
|
|
|
+ uploadListRefCell.value.handleRemove(uploadFile);
|
|
|
|
+ ElMessage.error('上传失败');
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 关怀宫格图
|
|
|
|
+const careCellImgUrl = ref('');
|
|
|
|
+const uploadListRefCareCell = ref<RefType>();
|
|
|
|
+const updateSuccessCareCell = (response: any, uploadFile: UploadFile, uploadFiles: UploadFiles) => {
|
|
if (response.result.path) {
|
|
if (response.result.path) {
|
|
- console.log(response);
|
|
|
|
- imageUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
|
|
|
|
|
|
+ // careCellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + response.result.path;
|
|
|
|
+ careCellImgUrl.value = URL.createObjectURL(uploadFile.raw!);
|
|
|
|
+ state.ruleForm.careCellImgUrl = response.result.path;
|
|
} else {
|
|
} else {
|
|
- uploadListRef.value.handleRemove(uploadFile);
|
|
|
|
|
|
+ uploadListRefCareCell.value.handleRemove(uploadFile);
|
|
|
|
+ ElMessage.error('上传失败');
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+// 上传失败
|
|
|
|
+const onUploadError = (error: Error) => {
|
|
|
|
+ try {
|
|
|
|
+ const errMessage = JSON.parse(error.message)?.message ?? '上传失败';
|
|
|
|
+ ElMessage.error(errMessage);
|
|
|
|
+ } catch (e) {
|
|
ElMessage.error('上传失败');
|
|
ElMessage.error('上传失败');
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-let loading = ref<boolean>(false); // 加载状态
|
|
|
|
|
|
+let loading = ref<boolean>(false); // 加载状态
|
|
// 打开弹窗
|
|
// 打开弹窗
|
|
const ruleFormRef = ref<RefType>();
|
|
const ruleFormRef = ref<RefType>();
|
|
const openDialog = async (id: string) => {
|
|
const openDialog = async (id: string) => {
|
|
@@ -259,12 +394,17 @@ const openDialog = async (id: string) => {
|
|
const res: any = await getIndustryDetail(id);
|
|
const res: any = await getIndustryDetail(id);
|
|
state.ruleForm = res.result ?? <EmptyObjectType>{};
|
|
state.ruleForm = res.result ?? <EmptyObjectType>{};
|
|
state.ruleForm.files = transformFile(res.result.files);
|
|
state.ruleForm.files = transformFile(res.result.files);
|
|
|
|
+ bgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.backgroundImgUrl; // 背景图
|
|
|
|
+ bannerUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.bannerImgUrl;
|
|
|
|
+ cellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.cellImgUrl;
|
|
|
|
+ careCellImgUrl.value = import.meta.env.VITE_API_UPLOAD_URL + res.result.careCellImgUrl;
|
|
loading.value = false;
|
|
loading.value = false;
|
|
} catch (error) {
|
|
} catch (error) {
|
|
console.log(error);
|
|
console.log(error);
|
|
loading.value = false;
|
|
loading.value = false;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
+
|
|
// 关闭弹窗
|
|
// 关闭弹窗
|
|
const closeDialog = () => {
|
|
const closeDialog = () => {
|
|
state.dialogVisible = false;
|
|
state.dialogVisible = false;
|
|
@@ -275,13 +415,12 @@ const close = () => {
|
|
state.ruleForm.files = [];
|
|
state.ruleForm.files = [];
|
|
};
|
|
};
|
|
const filesFormat = ref<EmptyArrayType>([]); // 附件列表格式化
|
|
const filesFormat = ref<EmptyArrayType>([]); // 附件列表格式化
|
|
-// 新增
|
|
|
|
|
|
+// 编辑
|
|
const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
|
|
const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
|
|
if (!formEl) return;
|
|
if (!formEl) return;
|
|
await formEl.validate((valid: boolean) => {
|
|
await formEl.validate((valid: boolean) => {
|
|
if (!valid) return;
|
|
if (!valid) return;
|
|
loading.value = true;
|
|
loading.value = true;
|
|
- state.ruleForm.settingValue = state.ruleForm?.settingValue.split('|');
|
|
|
|
editIndustry(state.ruleForm)
|
|
editIndustry(state.ruleForm)
|
|
.then(() => {
|
|
.then(() => {
|
|
ElMessage({
|
|
ElMessage({
|
|
@@ -299,6 +438,23 @@ const onSubmit = throttle(async (formEl: FormInstance | undefined) => {
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}, 300);
|
|
}, 300);
|
|
|
|
+// 获取基础数据
|
|
|
|
+const acceptType = ref<EmptyArrayType>([]); // 受理类型
|
|
|
|
+const bulletinType = ref<EmptyArrayType>([]); // 公告类型
|
|
|
|
+const department = ref<EmptyArrayType>([]); // 审批部门
|
|
|
|
+const getBaseData = async () => {
|
|
|
|
+ try {
|
|
|
|
+ const { result } = await baseIndustry();
|
|
|
|
+ acceptType.value = result.acceptType;
|
|
|
|
+ bulletinType.value = result.bulletinType;
|
|
|
|
+ department.value = result.department;
|
|
|
|
+ } catch (e) {
|
|
|
|
+ console.log(e);
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+onMounted(() => {
|
|
|
|
+ getBaseData();
|
|
|
|
+});
|
|
// 暴露变量
|
|
// 暴露变量
|
|
defineExpose({
|
|
defineExpose({
|
|
openDialog,
|
|
openDialog,
|
|
@@ -332,4 +488,4 @@ defineExpose({
|
|
height: 178px;
|
|
height: 178px;
|
|
text-align: center;
|
|
text-align: center;
|
|
}
|
|
}
|
|
-</style>
|
|
|
|
|
|
+</style>
|