src/api/system/company/company.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/utils/mapList/index.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/banner/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/companymanger/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/complating/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/enforcement/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/policy/components/addNews.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/infomanger/policy/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/api/system/company/company.ts
@@ -71,10 +71,11 @@ }) } // /system/doc/list 慧企政策列表 export function docList() { export function docList(params) { return request({ url: '/system/doc/list', method: 'get', params: params }) } // 新增企业信息 /system/doc/add @@ -156,4 +157,28 @@ method: 'post', data: data }) } // 执法评价项 export function listEvaluate(data) { return request({ url: `/enforce/evaluate/detail`, method: 'get', params: data }) } // 修改状态 /system/company/updStatus export function updStatus(data) { return request({ url: `/system/company/updStatus`, method: 'post', data: data }) } // 执法评价管理 /enforce/evaluate/save export function saveEvaluate(data) { return request({ url: `/enforce/evaluate/save`, method: 'post', data: data }) } src/utils/mapList/index.ts
@@ -17,4 +17,8 @@ export const scopeList = { 0: '注册', 1: '导入' } // 政策类型 export const policyType = { 1: '惠企政策' } src/views/infomanger/banner/index.vue
@@ -1,9 +1,165 @@ <template> <div class="app-container"> <el-row> <el-col :span="24"> <el-button></el-button> </el-col> </el-row> <div class="form-content"> <el-form inline :model="form.questionList" label-width="80px" :rules="rules"> <div class="border" v-for="(item, index) in form.questionList" :key="index" > <div class="close-icon"> <el-icon><Close /></el-icon> </div> <el-row> <el-col :span="24"> <el-form-item label="试题内容" style="width: 100%" :prop="item.questionName"> <el-input placeholder="请输入" v-model="item.questionName" type="textarea" ></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="12"> <el-form-item label="本题得分" :prop="item.questionScore"> <el-input type="number" placeholder="请输入" v-model="item.questionScore" style="width: 200px" ></el-input> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="题目类型" :prop="item.questionType"> <el-radio-group placeholder="请输入" v-model="item.questionType" > <el-radio value="1">选择</el-radio> <el-radio value="2">打分</el-radio> </el-radio-group> </el-form-item> </el-col> </el-row> <el-row v-if="item.questionType === '1'"> <el-col :span="24"> <el-form-item label="本题选项" style="width: 100%;" :prop="item.answerList"> <div v-for="(ele, childIndex) in item.answerList" :key="index" style="width: 100%;" class="set-flex" > <div style="font-size: 14px;margin-right: 10px">{{ childIndex + 1 }}</div> <el-input v-model="ele.answerName" placeholder="请输入" style="width: 85%; margin-right: 10px" ></el-input> <el-checkbox v-model="ele.isScore" @change="changeValue($event, index, childIndex)" :true-value="1" :false-value="0" :label="'是否计分'"/> </div> <!-- </el-radio-group> --> <div class="mt10"> <el-button type="primary" plain @click="addOptions(index, item.questionName)">添加选项</el-button> </div> </el-form-item> </el-col> </el-row> </div> <div class="add-button" @click="addContent">添加执法项</div> </el-form> <div class="center mt20"> <el-button @click="save" type="primary" style="width: 100%;padding: 20px 0">保存内容</el-button> </div> </div> </div> </template> </template> <script lang="ts" setup> import { listEvaluate, saveEvaluate } from '@/api/system/company/company' import { ElMessage} from 'element-plus' const tableData = ref([]) const addNewRef = ref() const form: any = ref({ questionList: [] }) const rules = ref({ questionName: [ { required: true, message: '请输入问题', trigger: 'blur' } ] }) function getListEvaluate() { listEvaluate().then((val) => { tableData.value = val.data.questionList }) } function addContent() { form.value.questionList.push({ questionStatus: 0, questionType: '2', answerList: [] }) } function addOptions(index: number, name){ form.value.questionList[index].answerList.push({ questionName: name }) } function save() { saveEvaluate({questionList: form.value.questionList}).then(val => { ElMessage.success('保存成功') }) } function changeValue(event, index, childIndex) { // form.value.questionList[index].isScore = event.target. form.value.questionList[index].answerList.forEach((item: { isScore: number }) => { item.isScore = 0 }) form.value.questionList[index].answerList[childIndex].isScore = 1 } getListEvaluate() </script> <style scoped lang="scss"> .form-content { width: 80%; } .border { border: 1px solid #e2e2e2; margin-bottom: 10px; padding: 30px; position: relative; } .close-icon { position: absolute; right: 10px; top: 10px; cursor: pointer; } .add-button { text-align: center; border: 1px dotted #979797; line-height: 40px; cursor: pointer; border-radius: 5px; } .set-flex{ display: flex; justify-content: flex-start; margin-top: 10px } .center{ text-align: center; } </style> src/views/infomanger/companymanger/index.vue
@@ -1,17 +1,17 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="80px"> <el-form :model="queryParams" ref="queryRef" class="evenly-distributed-labels" :inline="true" v-show="showSearch" label-width="80px" label-position="left"> <el-form-item label="企业名称" prop="companyName"> <el-input v-model="queryParams.companyName" placeholder="请输入企业名称" clearable style="width: 200px" @keyup.enter="handleQuery" /> </el-form-item> <el-form-item label="企业编号" prop="companyCode"> <el-input v-model="queryParams.companyCode" placeholder="请输入企业编号" clearable style="width: 200px" @keyup.enter="handleQuery" /> </el-form-item> <el-form-item label="企业类型" prop="status"> <!-- <el-form-item label="企业类型" prop="status"> <el-select v-model="queryParams.status" placeholder="企业类型" clearable style="width: 200px"> <el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" /> </el-select> </el-form-item> </el-form-item> --> <el-form-item label="联系人" prop="companyUser"> <el-input v-model="queryParams.companyUser" placeholder="请输入联系人" clearable style="width: 200px" @keyup.enter="handleQuery" /> </el-form-item> @@ -39,7 +39,7 @@ <el-button type="primary" plain icon="Plus" @click="handleAdd()" v-hasPermi="['system:dept:add']">新增</el-button> </el-col> <el-col :span="1.5"> <el-button type="primary" plain icon="Plus" @click="exportExcel" v-hasPermi="['system:dept:add']">导入</el-button> <el-button type="primary" plain icon="Download" @click="exportExcel" v-hasPermi="['system:dept:add']">导入</el-button> </el-col> <!-- <el-col :span="1.5"> <el-button type="primary" plain icon="Plus" @click="exportRecordComOpen" v-hasPermi="['system:dept:add']">导入记录</el-button> @@ -79,13 +79,13 @@ </el-table-column> <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="240"> <template #default="scope"> <el-link type="primary" v-if="scope.row.checkStatus < 2" v-hasPermi="['sys:company:check']" @click="checkJudge(scope.row)">审核</el-link> <el-link type="success" v-if="scope.row.checkStatus < 2" v-hasPermi="['sys:company:check']" @click="checkJudge(scope.row)">审核</el-link> <el-divider direction="vertical" v-hasPermi="['sys:company:check']" v-if="scope.row.checkStatus < 2"/> <el-link type="primary" v-if="scope.row.checkStatus == 2" @click="createQrcodeHandler(scope.row)">二维码</el-link> <el-divider direction="vertical" /> <el-link type="info" v-if="scope.row.checkStatus == 2" @click="createQrcodeHandler(scope.row)">二维码</el-link> <el-divider direction="vertical" v-if="scope.row.checkStatus == 2"/> <el-link type="primary" @click="handleAdd(scope.row)">编辑</el-link> <el-divider direction="vertical" /> <el-link type="primary" @click="handleDelete(scope.row)">删除</el-link> <el-link type="error" @click="handleDelete(scope.row)">删除</el-link> </template> </el-table-column> </el-table> @@ -114,7 +114,7 @@ <el-input placeholder="请输入企业地址" v-model="form.companyAddress"></el-input> </el-form-item> <el-form-item label="状态"> <el-switch v-model="form.companyStatus" :active-value="1" :inactive-value="0"></el-switch> <el-switch v-model="form.companyStatus" :active-value="0" :inactive-value="1"></el-switch> </el-form-item> <el-form-item label="备注"> <el-input placeholder="请输入备注" v-model="form.remark"></el-input> @@ -139,7 +139,7 @@ import exportRecord from './components/exportRecord' import createQrcode from './components/createQrcode' import judgeCom from './components/judge' import { listCompany,addCompany, updateCompany, delCompany } from "@/api/system/company/company"; import { listCompany,addCompany, updStatus, delCompany } from "@/api/system/company/company"; import exportExcelCom from './components/export' import { computed } from "vue"; import { judgeStatus, companyStatus, scopeList } from '@/utils/mapList/index.ts' @@ -182,11 +182,11 @@ companyStatus: [ { label: '正常', value: 1 value: 0 }, { label: '禁用', value: 0 value: 1 }, ], socreList: [ @@ -275,7 +275,9 @@ form.value = row title.value = "编辑企业"; } else { form.value = {} form.value = { companyStatus: 0 } title.value = "添加企业"; } open.value = true; @@ -319,7 +321,7 @@ if(loading.value){ return } updateCompany(row).then(val => { updStatus(row).then(val => { proxy.$modal.msgSuccess("修改成功"); getList(); }) @@ -344,3 +346,19 @@ } getList(); </script> <style scoped lang="scss"> .evenly-distributed-labels { :deep(){ .el-form-item__label { position: relative; /* 设置相对定位作为星号的定位基准 */ text-align: justify; text-align-last: justify; /* 确保最后一行也两端对齐 */ padding-left: 10px; /* 为星号预留空间 */ display: inline-block; } } } </style> src/views/infomanger/complating/index.vue
New file @@ -0,0 +1,68 @@ <template> <div class="app-container"> <el-form inline ref="formRef" :model="form.queryParams" label-width="80px"> <el-form-item label="投诉内容" prop="content"> <el-input placeholder="请输入" v-model="form.queryParams.content"></el-input> </el-form-item> <el-form-item label="投诉对象"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="投诉人"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="执法记录"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="办理状态"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item> <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-button icon="Refresh" @click="resetQuery">重置</el-button> </el-form-item> </el-form> <el-row class="mt20 mb10"> <el-col> <el-button icon="Download" type="primary" plain>导出</el-button> </el-col> </el-row> <el-table> <el-table-column label="投诉企业"></el-table-column> <el-table-column label="投诉对象"></el-table-column> <el-table-column label="投诉类型"></el-table-column> <el-table-column label="投诉内容"></el-table-column> <el-table-column label="执法主题"></el-table-column> <el-table-column label="办理状态"></el-table-column> <el-table-column label="操作"></el-table-column> </el-table> </div> </template> <script lang="ts" setup> const formRef = ref() const form = reactive({ queryParams: { content: '' } }) function handleQuery() { } function resetQuery() { formRef.value.resetFields() } </script> <style scoped lang="scss"> .evenly-distributed-labels { :deep(){ .el-form-item__label { position: relative; /* 设置相对定位作为星号的定位基准 */ text-align: justify; text-align-last: justify; /* 确保最后一行也两端对齐 */ padding-left: 10px; /* 为星号预留空间 */ display: inline-block; } } } </style> src/views/infomanger/enforcement/index.vue
New file @@ -0,0 +1,80 @@ <template> <div class="app-container"> <el-form inline class="evenly-distributed-labels" ref="formRef" :model="form.queryParams" label-width="80px"> <el-form-item label="执法记录" prop="content"> <el-input placeholder="请输入" v-model="form.queryParams.content"></el-input> </el-form-item> <el-form-item label="执法类型"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="执法时间"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="企业"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="执法部门"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="状态"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="执法结果"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item label="是否通知"> <el-input placeholder="请输入"></el-input> </el-form-item> <el-form-item> <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button> <el-button icon="Refresh" @click="resetQuery">重置</el-button> </el-form-item> </el-form> <el-row class="mt20 mb10"> <el-col> <el-button icon="Download" type="primary" plain>导出</el-button> </el-col> </el-row> <el-table> <el-table-column label="企业"></el-table-column> <el-table-column label="执法部门"></el-table-column> <el-table-column label="执法人"></el-table-column> <el-table-column label="执法类型"></el-table-column> <el-table-column label="执法主题"></el-table-column> <el-table-column label="申请时间"></el-table-column> <el-table-column label="执法时间"></el-table-column> <el-table-column label="状态"></el-table-column> <el-table-column label="执法结果"></el-table-column> <el-table-column label="是否通知企业"></el-table-column> </el-table> </div> </template> <script lang="ts" setup> const formRef = ref() const form = reactive({ queryParams: { content: '' } }) function handleQuery() { } function resetQuery() { formRef.value.resetFields() } </script> <style scoped lang="scss"> .evenly-distributed-labels { :deep(){ .el-form-item__label { position: relative; /* 设置相对定位作为星号的定位基准 */ text-align: justify; text-align-last: justify; /* 确保最后一行也两端对齐 */ padding-left: 10px; /* 为星号预留空间 */ display: inline-block; } } } </style> src/views/infomanger/policy/components/addNews.vue
@@ -2,28 +2,30 @@ <template> <el-dialog title="惠企政策" v-model="dialogVisible" width="900px" append-to-body @close="closeDialog"> <div style="padding: 0 20px;"> <el-form :mode="form" :rules="rules"> <el-form-item label="政策类型" prop="docType"> <el-select v-model="form.docType" placeholder="请选择" style="width: 200px"> <el-option v-for="(item,index) in policyList" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> <el-form-item label="政策名称" prop="docTitle"> <el-input v-model="form.docTitle" placeholder="请输入政策名称"></el-input> </el-form-item> <el-form-item label="政策内容" prop="docContent"> <div><editPolicy v-model="form.docContent"></editPolicy></div> </el-form-item> <el-form-item label="状态" > <el-switch v-model="form.docStatus" :active-value="0" :inactive-value="1"></el-switch> </el-form-item> </el-form> <el-form :model="form" :rules="rules" ref="form" label-width="80px"> <el-form-item label="政策类型" prop="docType"> <el-select v-model="form.docType" placeholder="请选择" style="width: 200px"> <el-option v-for="(item, index) in policyList" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> <el-form-item label="政策名称" prop="docTitle"> <el-input v-model="form.docTitle" placeholder="请输入政策名称"></el-input> </el-form-item> <el-form-item label="政策内容" prop="docContent"> <div> <editPolicy v-model="form.docContent"></editPolicy> </div> </el-form-item> <el-form-item label="状态"> <el-switch v-model="form.docStatus" :active-value="0" :inactive-value="1"></el-switch> </el-form-item> </el-form> </div> <template v-slot:footer> <el-button type="primary" @click="addDoc">确认</el-button> <el-button type="primary" @click="addDocHandler">确认</el-button> <el-button @click="closeDialog">取消</el-button> </template> </el-dialog> </el-dialog> </template> <script> @@ -48,11 +50,18 @@ docStatus: 0 }, rules: { docType:[{ docType: [{ required: true, message: '请输入政策名称', trigger: 'blur' }], docTitle: [ { required: true, message: '请输入政策名称', trigger: 'blur' } ], docName: [ { required: true, @@ -75,7 +84,7 @@ this.dialogVisible = false }, openDialog(row) { if(row) { if (row) { this.form = row this.form.docContent = decodeURIComponent(row.docContent) } else { @@ -85,21 +94,31 @@ } this.dialogVisible = true }, addDoc() { this.form.docContent = encodeURIComponent(this.form.docContent) if(this.form.docId) { updDoc(this.form).then(val => { this.$message.success('添加成功') this.closeDialog() this.$emit('upload') addDocHandler() { this.$refs.form.validate((valid) => { if (valid) { const form = JSON.parse(JSON.stringify(this.form)) form.docContent = encodeURIComponent(this.form.docContent) if (form.docId) { updDoc(form).then(val => { this.$message.success('添加成功') this.closeDialog() this.$emit('upload') }).catch(err => { console.log(err) }) } else { addDoc(form).then(val => { this.$message.success('添加成功') this.closeDialog() this.$emit('upload') }).catch(err => { console.log(err.message) }) } } }) } else { addDoc(this.form).then(val => { this.$message.success('添加成功') this.closeDialog() this.$emit('upload') }) } } } } src/views/infomanger/policy/index.vue
@@ -1,16 +1,16 @@ <template> <div class="app-container"> <el-form :inline="true" label-width="100px" :model="form"> <el-form :inline="true" class="evenly-distributed-labels" :model="form" ref="form" label-position="left" label-width="80px"> <el-form-item label="政策名称"> <el-input placeholder="请输入" ></el-input> <el-input placeholder="请输入" v-model="form.docTitle"></el-input> </el-form-item> <el-form-item label="政策类型"> <el-select placeholder="请选择" style="width: 200px;"> <el-select placeholder="请选择" style="width: 200px;" v-model="form.docType"> <el-option v-for="item in policyList" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> <el-form-item label="状态"> <el-select placeholder="请选择" style="width: 200px;"> <el-select placeholder="请选择" style="width: 200px;" v-model="form.docStatus"> <el-option v-for="item in statusList" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> @@ -26,7 +26,11 @@ </el-row> <el-table :data="tableData" v-loading="loading" border> <el-table-column label="政策名称" prop="docTitle"></el-table-column> <el-table-column label="政策类型" prop="docType"></el-table-column> <el-table-column label="政策类型" prop="docType"> <template #default="scope"> {{ policyType[scope.row.docType] }} </template> </el-table-column> <el-table-column label="创建时间" prop="createTime"></el-table-column> <el-table-column label="创建人" width="200" prop="createBy"></el-table-column> <el-table-column label="状态" width="200" prop="docStatus"> @@ -38,11 +42,11 @@ <template #default="scope"> <el-link type="primary" @click="handleAdd(scope.row)">编辑</el-link> <el-divider direction="vertical" /> <el-link type="primary" @click="delData(scope.row)">删除</el-link> <el-link type="error" @click="delData(scope.row)">删除</el-link> </template> </el-table-column> </el-table> <pagination v-show="queryParams.total > 0" :total="queryParams.total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> <pagination v-show="queryParams.total > 0" :total="queryParams.total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="pageChange" /> <addNews ref="addnews" :policyList="policyList" @upload="getList"></addNews> </div> </template> @@ -51,6 +55,7 @@ import { docList,updDoc, delDoc } from '@/api/system/company/company' import addNews from './components/addNews' import { ElMessageBox } from 'element-plus' import { policyType } from '@/utils/mapList/index' export default { components: { addNews @@ -79,7 +84,9 @@ pageSize: 10 }, tableData: [], loading: false loading: false, form: {}, policyType } }, created() { @@ -87,9 +94,14 @@ this.getList() }, methods: { pageChange(e) { this.queryParams.pageNum = e.page this.queryParams.pageSize = e.limit this.getList() }, // 获取列表 getList() { docList(this.queryParams).then(res => { docList({...this.queryParams, ...this.form}).then(res => { this.tableData = res.rows this.queryParams.total = res.total this.loading = false @@ -125,7 +137,26 @@ this.getList() }) }) }, resetQuery() { this.form = {} this.queryParams.pageNum = 1 this.$refs.form.resetFields() this.getList() } } } </script> </script> <style scoped lang="scss"> .evenly-distributed-labels { :deep(){ .el-form-item__label { position: relative; /* 设置相对定位作为星号的定位基准 */ text-align: justify; text-align-last: justify; /* 确保最后一行也两端对齐 */ padding-left: 10px; /* 为星号预留空间 */ display: inline-block; } } } </style>