Browse Source

数字社区

master
dai 2 years ago
parent
commit
cb6f09da0f
  1. 2
      .env.development
  2. 2
      .env.production
  3. 2
      .env.production.sit
  4. 2
      .env.production.uat
  5. 8
      src/i18n/zh-CN.js
  6. 1153
      src/views/modules/base/organization/organization.vue
  7. 330
      src/views/modules/cpts/base/index.vue
  8. 298
      src/views/modules/lingshan/djyl/hsdb/dbfw.vue
  9. 298
      src/views/modules/lingshan/djyl/hsdb/dby.vue
  10. 4
      src/views/modules/lingshan/shzl/mapConfig.vue
  11. 13
      src/views/modules/lingshan/xtgl/articleCategory.vue
  12. 4
      vue.config.js

2
.env.development

@ -6,4 +6,4 @@ VUE_APP_API_SERVER = http://localhost:7099/api
VUE_APP_NODE_ENV=dev VUE_APP_NODE_ENV=dev
#项目根路径 #项目根路径
VUE_APP_PUBLIC_PATH=lingshan-oper VUE_APP_PUBLIC_PATH=epmet-oper-gov

2
.env.production

@ -1,4 +1,4 @@
NODE_ENV=production NODE_ENV=production
VUE_APP_API_SERVER = https://lingshan-smps.elinkservice.cn/api VUE_APP_API_SERVER = https://lingshan-smps.elinkservice.cn/api
VUE_APP_NODE_ENV=prod VUE_APP_NODE_ENV=prod
VUE_APP_PUBLIC_PATH=lingshan-oper VUE_APP_PUBLIC_PATH=epmet-oper-gov

2
.env.production.sit

@ -1,4 +1,4 @@
NODE_ENV=production NODE_ENV=production
VUE_APP_API_SERVER = http://119.167.72.91/api VUE_APP_API_SERVER = http://119.167.72.91/api
VUE_APP_NODE_ENV=prod:sit VUE_APP_NODE_ENV=prod:sit
VUE_APP_PUBLIC_PATH=lingshan-oper VUE_APP_PUBLIC_PATH=epmet-oper-gov

2
.env.production.uat

@ -1,4 +1,4 @@
NODE_ENV=production NODE_ENV=production
VUE_APP_API_SERVER = http://119.167.72.91/api VUE_APP_API_SERVER = http://119.167.72.91/api
VUE_APP_NODE_ENV=prod:uat VUE_APP_NODE_ENV=prod:uat
VUE_APP_PUBLIC_PATH=lingshan-oper VUE_APP_PUBLIC_PATH=epmet-oper-gov

8
src/i18n/zh-CN.js

@ -3,10 +3,10 @@ const t = {}
t.loading = '加载中...' t.loading = '加载中...'
t.brand = {} t.brand = {}
t.brand.lg = '数字社区综合服务平台' t.brand.lg = '灵山街道乡村治理智慧管理平台'
t.brand.mini = '数字' t.brand.mini = '灵山'
t.brand.work = '数字社区综合服务平台' t.brand.work = '灵山街道乡村治理智慧管理平台'
t.brand.workMini = '工作端' t.brand.workMini = '灵山'
t.add = '新增' t.add = '新增'
t.delete = '删除' t.delete = '删除'

1153
src/views/modules/base/organization/organization.vue

File diff suppressed because it is too large

330
src/views/modules/cpts/base/index.vue

@ -1,40 +1,52 @@
<template> <template>
<div class="div_main"> <div class="div_main">
<div v-show="true"> <div v-show="true">
<div class="div_search" <div class="div_search" ref="ref_search">
ref="ref_search"> <el-form
<el-form :inline="true" :inline="true"
ref="ref_searchform" ref="ref_searchform"
label-width="100px"> label-width="100px"
>
<div> <div>
<el-form-item v-for="item in searchParams" <el-form-item
v-for="item in searchParams"
:key="'serach' + item.keyName" :key="'serach' + item.keyName"
:label="item.field" :label="item.field"
:prop="item.keyName"> :prop="item.keyName"
>
<template v-if="item.type == 'input'"> <template v-if="item.type == 'input'">
<el-input v-model="item.value" <el-input
v-model="item.value"
style="width: 240px" style="width: 240px"
size="small" size="small"
clearable clearable
:placeholder="item.placeholder || '请输入'"> :placeholder="item.placeholder || '请输入'"
>
</el-input> </el-input>
</template> </template>
<template v-else-if="item.type == 'select'"> <template v-else-if="item.type == 'select'">
<el-select v-model="item.value" <el-select
v-model="item.value"
:placeholder="item.placeholder || '请选择'" :placeholder="item.placeholder || '请选择'"
size="small" size="small"
clearable clearable
style="width: 240px" style="width: 240px"
:multiple="item.multiple || false"> :multiple="item.multiple || false"
<el-option v-for="item in item.optionList" >
:key="'serach' + item.keyName + item.value" <el-option
v-for="item in item.optionList"
:key="
'serach' + item.keyName + item.value
"
:label="item.label" :label="item.label"
:value="item.value"> :value="item.value"
>
</el-option> </el-option>
</el-select> </el-select>
</template> </template>
<template v-else-if="item.type == 'cascader'"> <template v-else-if="item.type == 'cascader'">
<el-cascader v-model="item.value" <el-cascader
v-model="item.value"
:placeholder="item.placeholder || '请选择'" :placeholder="item.placeholder || '请选择'"
:options="item.optionList" :options="item.optionList"
:props="item.optionProps" :props="item.optionProps"
@ -42,54 +54,82 @@
size="small" size="small"
clearable clearable
style="width: 240px" style="width: 240px"
@change="(e) => handleChangeCascader(e, item)"> @change="
(e) => handleChangeCascader(e, item)
"
>
</el-cascader> </el-cascader>
</template> </template>
<template v-if="item.type == 'date-range'"> <template v-if="item.type == 'date-range'">
<el-date-picker v-model="item.supValues[0]" <el-date-picker
v-model="item.supValues[0]"
type="date" type="date"
placeholder="开始时间" placeholder="开始时间"
style="width: 150px" style="width: 150px"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
clearable> clearable
>
</el-date-picker> </el-date-picker>
<span style="display: inline-block; margin: 0 10px"></span> <span
<el-date-picker v-model="item.supValues[1]" style="
display: inline-block;
margin: 0 10px;
"
></span
>
<el-date-picker
v-model="item.supValues[1]"
type="date" type="date"
placeholder="结束时间" placeholder="结束时间"
style="width: 150px" style="width: 150px"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
clearable> clearable
>
</el-date-picker> </el-date-picker>
</template> </template>
</el-form-item> </el-form-item>
<el-button style="margin-left: 30px; margin-bottom: 20px" <el-button
style="margin-left: 30px; margin-bottom: 20px"
size="small" size="small"
class="diy-button--search" class="diy-button--search"
@click="handleSearch">查询</el-button> @click="handleSearch"
<el-button style="margin-left: 10px; margin-bottom: 20px" >查询</el-button
>
<el-button
style="margin-left: 10px; margin-bottom: 20px"
size="small" size="small"
class="diy-button--reset" class="diy-button--reset"
@click="resetSearch">重置</el-button> @click="resetSearch"
>重置</el-button
>
</div> </div>
</el-form> </el-form>
</div> </div>
<div class="div_table" <div
:style="{ height: maxTableHeight + 130 + 'px' }"> class="div_table"
:style="{ height: maxTableHeight + 130 + 'px' }"
>
<div class="div_btn"> <div class="div_btn">
<el-button class="diy-button--add" <el-button
class="diy-button--add"
v-if="addUrl" v-if="addUrl"
size="small" size="small"
@click="handleAdd">新增</el-button> @click="handleAdd"
>新增</el-button
>
<el-button v-if="mubanUrl" <el-button
v-if="mubanUrl"
class="btn_upload diy-button--export" class="btn_upload diy-button--export"
size="small" size="small"
@click="handleExportModule('room')">下载模板</el-button> @click="handleExportModule('room')"
>下载模板</el-button
>
<el-upload :headers="$getElUploadHeaders()" <el-upload
:headers="$getElUploadHeaders()"
v-if="importUrl" v-if="importUrl"
ref="upload" ref="upload"
class="upload-btn" class="upload-btn"
@ -100,123 +140,179 @@
:show-file-list="false" :show-file-list="false"
:auto-upload="true" :auto-upload="true"
:before-upload="beforeExcelUpload" :before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest"> :http-request="uploadHttpRequest"
<el-button size="small" >
class="btn_upload diy-button--delete">导入</el-button> <el-button
size="small"
class="btn_upload diy-button--delete"
>导入</el-button
>
</el-upload> </el-upload>
<el-button v-if="exportUrl" <el-button
v-if="exportUrl"
@click="handleExport" @click="handleExport"
class="btn_upload diy-button--reset" class="btn_upload diy-button--reset"
size="small">导出</el-button> size="small"
<el-button v-if="qrCodeExportUrl" >导出</el-button
>
<el-button
v-if="qrCodeExportUrl"
@click="handleExportQrcode" @click="handleExportQrcode"
class="btn_upload diy-button--reset" class="btn_upload diy-button--reset"
size="small">导出员工登记码</el-button>
<el-button v-if="delMultipleUrl"
size="small" size="small"
@click="handleDeleteMultiple">批量删除</el-button> >导出员工登记码</el-button
<slot name="listBtn" >
v-bind:multipleSelection="multipleSelection"></slot> <el-button
v-if="delMultipleUrl"
size="small"
@click="handleDeleteMultiple"
>批量删除</el-button
>
<slot
name="listBtn"
v-bind:multipleSelection="multipleSelection"
></slot>
</div> </div>
<el-table ref="ref_table" <el-table
ref="ref_table"
:data="tableData" :data="tableData"
border border
:empty-text="loadInfo" :empty-text="loadInfo"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }" :header-cell-style="{
background: '#2195FE',
color: '#FFFFFF',
}"
class="table" class="table"
style="width: 100%" style="width: 100%"
:height="maxTableHeight" :height="maxTableHeight"
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange"
<template v-for="(item, index) in tableParams" >
:prop="item.keyName"> <template
<el-table-column v-if="item.type == 'selection'" v-for="(item, index) in tableParams"
:prop="item.keyName"
>
<el-table-column
v-if="item.type == 'selection'"
:key="'table-selection' + index" :key="'table-selection' + index"
type="selection" type="selection"
align="center" align="center"
width="50" /> width="50"
/>
<el-table-column v-if="item.type == 'no'" <el-table-column
v-if="item.type == 'no'"
:key="'table-no' + item.keyName" :key="'table-no' + item.keyName"
:label="item.field" :label="item.field"
fixed="left" fixed="left"
type="index" type="index"
align="center" align="center"
width="50" /> width="50"
/>
<el-table-column v-else-if="item.type == 'text'" <el-table-column
v-else-if="item.type == 'text'"
:key="'table' + item.keyName" :key="'table' + item.keyName"
:prop="item.keyName" :prop="item.keyName"
:label="item.field" :label="item.field"
align="center" align="center"
:width="item.width || ''" :width="item.width || ''"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true"
>
</el-table-column> </el-table-column>
<el-table-column v-else-if="item.type == 'array'" <el-table-column
v-else-if="item.type == 'array'"
:key="'table-array' + item.keyName" :key="'table-array' + item.keyName"
:prop="item.keyName" :prop="item.keyName"
:label="item.field" :label="item.field"
align="center" align="center"
:width="item.width || ''" :width="item.width || ''"
:show-overflow-tooltip="true"> :show-overflow-tooltip="true"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row[item.keyName].join(item.arrayDiv || ",") }} {{
scope.row[item.keyName].join(
item.arrayDiv || ","
)
}}
</template> </template>
</el-table-column> </el-table-column>
</template> </template>
<el-table-column v-if="operateCol" <el-table-column
v-if="operateCol"
fixed="right" fixed="right"
label="操作" label="操作"
align="center" align="center"
width="200"> width="200"
>
<template slot-scope="scope"> <template slot-scope="scope">
<slot name="listBtnbefore" <slot
v-bind:item="scope.row"></slot> name="listBtnbefore"
<el-button v-if="infoUrl && infoAuth(scope.row)" v-bind:item="scope.row"
></slot>
<el-button
v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)" @click="handleWatch(scope.row)"
type="text" type="text"
size="small" size="small"
class=".div-table-button--detail">查看</el-button> class=".div-table-button--detail"
<el-button v-if="editUrl && editAuth(scope.row)" >查看</el-button
>
<el-button
v-if="editUrl && editAuth(scope.row)"
@click="handleEdit(scope.row)" @click="handleEdit(scope.row)"
type="text" type="text"
size="small" size="small"
class="div-table-button--edit">{{ editBtnName(scope.row) }}</el-button> class="div-table-button--edit"
<el-popconfirm v-if="delUrl && delAuth(scope.row)" >{{ editBtnName(scope.row) }}</el-button
>
<el-popconfirm
v-if="delUrl && delAuth(scope.row)"
title="删除之后无法回复,确认删除?" title="删除之后无法回复,确认删除?"
@onConfirm="handleDelete(scope.row, scope.$index)" @onConfirm="
@confirm="handleDelete(scope.row, scope.$index)"> handleDelete(scope.row, scope.$index)
<el-button slot="reference" "
@confirm="handleDelete(scope.row, scope.$index)"
>
<el-button
slot="reference"
type="text" type="text"
size="small" size="small"
style="margin-left: 10px" style="margin-left: 10px"
class="div-table-button--delete">删除</el-button> class="div-table-button--delete"
>删除</el-button
>
</el-popconfirm> </el-popconfirm>
<slot name="listBtnSup" <slot
v-bind:item="scope.row"></slot> name="listBtnSup"
v-bind:item="scope.row"
></slot>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div> <div>
<el-pagination @size-change="handleSizeChange" <el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]" :page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)" :page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total" layout="sizes, prev, pager, next, total"
:total="total"> :total="total"
>
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
</div> </div>
<!-- 修改弹出框 --> <!-- 修改弹出框 -->
<el-dialog v-if="formShow" <el-dialog
v-if="formShow"
:visible.sync="formShow" :visible.sync="formShow"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
@ -224,8 +320,10 @@
:width="editParamsDiv ? '1100px' : '850px'" :width="editParamsDiv ? '1100px' : '850px'"
top="5vh" top="5vh"
class="dialog-h" class="dialog-h"
@closed="handleClose"> @closed="handleClose"
<edit-form v-if="formShow" >
<edit-form
v-if="formShow"
ref="editForm" ref="editForm"
:idName="idName" :idName="idName"
:formId="formId" :formId="formId"
@ -240,18 +338,23 @@
:formBtnFixed="formBtnFixed" :formBtnFixed="formBtnFixed"
:editConfig="editConfig" :editConfig="editConfig"
@close="handleClose" @close="handleClose"
@afterEdit="handleEditSuccess"> @afterEdit="handleEditSuccess"
>
<template v-slot:bottomSup="{ id, formType, info }"> <template v-slot:bottomSup="{ id, formType, info }">
<slot name="editBottomSup" <slot
name="editBottomSup"
v-bind:id="id" v-bind:id="id"
v-bind:formType="formType" v-bind:formType="formType"
v-bind:info="info"></slot> v-bind:info="info"
></slot>
</template> </template>
<template v-slot:operateSup="{ id, formType, info }"> <template v-slot:operateSup="{ id, formType, info }">
<slot name="editOperateSup" <slot
name="editOperateSup"
v-bind:id="id" v-bind:id="id"
v-bind:formType="formType" v-bind:formType="formType"
v-bind:info="info"></slot> v-bind:info="info"
></slot>
</template> </template>
</edit-form> </edit-form>
</el-dialog> </el-dialog>
@ -387,7 +490,7 @@ export default {
data() { data() {
return { return {
tableData: [], tableData: [],
loadInfo: '', loadInfo: "",
pageNo: 1, pageNo: 1,
pageSize: window.localStorage.getItem("pageSize") || 20, pageSize: window.localStorage.getItem("pageSize") || 20,
@ -408,7 +511,10 @@ export default {
maxTableHeight() { maxTableHeight() {
const { ref_search_height } = this; const { ref_search_height } = this;
return this.$store.state.inIframe return this.$store.state.inIframe
? this.clientHeight - ref_search_height - 265 + this.iframeHeight ? this.clientHeight -
ref_search_height -
265 +
this.iframeHeight
: this.clientHeight - ref_search_height - 265; : this.clientHeight - ref_search_height - 265;
}, },
...mapGetters(["clientHeight", "iframeHeight"]), ...mapGetters(["clientHeight", "iframeHeight"]),
@ -571,7 +677,9 @@ export default {
// this.download(res.data, title + '.xls') // this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) { if (res.headers["content-disposition"]) {
let fileName = window.decodeURI( let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1] res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
); );
console.log("filename", fileName); console.log("filename", fileName);
let blob = new Blob([res.data], { let blob = new Blob([res.data], {
@ -612,10 +720,14 @@ export default {
}) })
.then((res) => { .then((res) => {
let fileName = window.decodeURI( let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1] res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
); );
console.log("filename", fileName); console.log("filename", fileName);
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }); let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob); var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a"); var aLink = document.createElement("a");
aLink.style.display = "none"; aLink.style.display = "none";
@ -649,10 +761,14 @@ export default {
}) })
.then((res) => { .then((res) => {
let fileName = window.decodeURI( let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1] res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
); );
console.log("filename", fileName); console.log("filename", fileName);
let blob = new Blob([res.data], { type: "application/vnd.ms-excel" }); let blob = new Blob([res.data], {
type: "application/vnd.ms-excel",
});
var url = window.URL.createObjectURL(blob); var url = window.URL.createObjectURL(blob);
var aLink = document.createElement("a"); var aLink = document.createElement("a");
aLink.style.display = "none"; aLink.style.display = "none";
@ -765,25 +881,47 @@ export default {
}, },
async getTableData() { async getTableData() {
this.loadInfo = '数据加载中' this.loadInfo = "数据加载中";
const { tableUrl: url } = this; let { tableUrl: url } = this;
if (!url) return; if (!url) return;
let req = requestPost;
if (url.startsWith("【GET】")) {
url = url.substr(5);
req = requestGet;
}
const { pageSize, pageNo } = this; const { pageSize, pageNo } = this;
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await req(url, {
pageSize, pageSize,
pageNo, pageNo,
...this.computeFmData(), ...this.computeFmData(),
}); });
if (code === 0) { if (code === 0) {
this.total = data.total || 0; let total = 0,
this.tableData = data.list ? this.cookTableData(data.list) : []; list = [];
if (Array.isArray(data)) {
list = data;
} else if ((data.total || data.count) && data.list) {
list = data.list || [];
total = data.total || data.count;
} else if (typeof data == "object") {
let ks = Object.keys(data);
let totalKey =
ks.find((k) => k.indexOf("ount") != -1) ||
ks.find((k) => k.indexOf("otal") != -1);
let listKey = ks.find((k) => k.indexOf("ist") != -1);
if (totalKey && listKey) {
total = data[totalKey];
list = data[listKey] || [];
}
}
this.total = total;
this.tableData = this.cookTableData(list);
if (this.tableData.length === 0) { if (this.tableData.length === 0) {
this.loadInfo = '暂无数据' this.loadInfo = "暂无数据";
} else { } else {
this.loadInfo = '' this.loadInfo = "";
} }
} else { } else {
this.$message.error(msg); this.$message.error(msg);

298
src/views/modules/lingshan/djyl/hsdb/dbfw.vue

@ -0,0 +1,298 @@
<template>
<div>
<base-page
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:addUrl="addUrl"
:editUrl="editUrl"
:delUrl="delUrl"
:editAuth="editAuth"
:delAuth="delAuth"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:importUrl="importUrl"
:mubanUrl="mubanUrl"
:editParams="editParams"
:editElseRules="editElseRules"
idName="icDangerousChemicalsId"
></base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { getItemByIdInCascader, collapse } from "@/utils/cascader";
export default {
props: {},
data() {
return {
searchParams: [
{
field: "所属组织",
keyName: "orgId",
type: "cascader",
value: "",
supKeys: ["orgType"],
supValues: [""],
optionUrl: "/gov/org/customeragency/agencygridtreeV2",
optionUrlParams: {
customerId: this.$store.state.user.customerId,
},
optionList: [],
optionProps: {
multiple: false,
value: "agencyId",
label: "agencyName",
children: "subAgencyList",
checkStrictly: true,
emitPath: false,
},
optionCook(obj) {
return [obj];
},
handleChangeFn(val, item, that) {
const { optionList } = item;
const optionPlaneList = collapse(
optionList,
"subAgencyList"
);
if (val) {
let selectedItem = getItemByIdInCascader(
optionPlaneList,
[val],
"agencyId",
"subAgencyList"
)[0];
item["supValues"][0] =
selectedItem.level == "grid"
? "grid"
: "agency";
console.log("handleChangeFn", selectedItem);
} else {
item["supValues"][0] = "";
}
},
},
{ field: "代办员姓名", keyName: "name", type: "input" },
{ field: "手机号", keyName: "phone", type: "input" },
{ field: "身份证号", keyName: "mobile", type: "input" },
],
tableParams: [
{ field: "序号", keyName: "", type: "no" },
{ field: "所属组织", keyName: "orgName", type: "text" },
{ field: "代办员姓名", keyName: "name", type: "text" },
{ field: "性别", keyName: "gender", type: "text" },
{ field: "年龄", keyName: "age", type: "text" },
{ field: "学历", keyName: "edu", type: "text" },
{ field: "联系电话", keyName: "mobile", type: "text" },
{ field: "身份证号", keyName: "idCard", type: "text" },
],
tableUrl: "【GET】/epmetuser/lingshan/serviceAgent/work/agentList",
mubanUrl: "",
importUrl: "",
exportUrl: "/gov/org/icDangerousChemicals/export",
// addUrl: "/gov/org/staff/addstaffv2",
editUrl: "/gov/org/staff/editstaff",
infoUrl: "/gov/org/staff/editstaffinit",
delUrl: "/gov/org/icDangerousChemicals/del",
// editAuth(item) {
// return item.agencyId == this.$store.state.user.agencyId;
// },
// delAuth(item) {
// return item.agencyId == this.$store.state.user.agencyId;
// },
editParams: [
// {
// field: "",
// keyName: "orgId",
// type: "cascader",
// value: () => [],
// supKeys: ["orgType"],
// supValues: [""],
// optionUrl: "/gov/org/customeragency/agencygridtreeV2",
// optionUrlParams: {
// customerId: this.$store.state.user.customerId,
// },
// optionList: [],
// optionProps: {
// multiple: false,
// value: "agencyId",
// label: "agencyName",
// children: "subAgencyList",
// checkStrictly: true,
// emitPath: false,
// },
// optionCook(obj) {
// return [obj];
// },
// handleChangeFn(val, item, that) {
// const { optionList } = item;
// const optionPlaneList = collapse(
// optionList,
// "subAgencyList"
// );
// if (val) {
// let selectedItem = getItemByIdInCascader(
// optionPlaneList,
// [val],
// "agencyId",
// "subAgencyList"
// )[0];
// that.fmData[item["keyName"]] =
// selectedItem.agencyId;
// that.fmData[item["supKeys"][0]] =
// selectedItem.level == "grid"
// ? "grid"
// : "agency";
// console.log("handleChangeFn", selectedItem);
// } else {
// that.fmData[item["keyName"]] = "";
// that.fmData[item["supKeys"][0]] = "";
// }
// },
// rules: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// ],
// },
{
field: "代办员姓名",
keyName: "name",
type: "input",
maxlength: 50,
editDisabled: false,
rules: [
{
required: true,
message: "代办员姓名不能为空",
trigger: "blur",
},
],
},
{
field: "手机号",
keyName: "mobile",
type: "input",
maxlength: 50,
editDisabled: false,
rules: [
{
required: true,
message: "手机号不能为空",
trigger: "blur",
},
],
},
{
field: "身份证号",
keyName: "idCard",
type: "input",
maxlength: 50,
editDisabled: false,
rules: [
{
required: true,
message: "身份证号不能为空",
trigger: "blur",
},
],
},
{
field: "学历",
keyName: "edu",
type: "select",
optionUrl: "/sys/dict/data/education",
optionUrlParams: {
formCode: "resi_base_info",
},
optionList: () => [],
editDisabled: false,
rules: [
{
required: true,
message: "学历不能为空",
trigger: "blur",
},
],
},
{
field: "专兼职",
keyName: "workType",
type: "select",
optionUrl: "",
optionUrlParams: {},
optionList: () => [
{ value: "fulltime", label: "专职" },
{ value: "parttime", label: "兼职" },
],
editDisabled: false,
rules: [
{
required: true,
message: "专兼职不能为空",
trigger: "blur",
},
],
},
{
field: "职责",
keyName: "roleList",
multiple: true,
type: "select",
optionUrl: "/gov/org/staff/rolelist",
optionUrlParams: {
agencyId: this.$store.state.user.agencyId,
},
optionList: () => [],
editDisabled: false,
rules: [
{
required: true,
message: "职责不能为空",
trigger: "blur",
},
],
},
{
field: "角色",
keyName: "newRoleList",
multiple: true,
type: "select",
optionUrl: "/gov/access/govrole/list",
optionUrlMethod: "get",
optionUrlParams: {},
optionList: () => [],
editDisabled: false,
rules: [
{
required: true,
message: "角色不能为空",
trigger: "blur",
},
],
},
],
editElseRules: {},
editConfig: {},
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {},
};
</script>
<style lang="scss" scoped></style>

298
src/views/modules/lingshan/djyl/hsdb/dby.vue

@ -0,0 +1,298 @@
<template>
<div>
<base-page
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:addUrl="addUrl"
:editUrl="editUrl"
:delUrl="delUrl"
:editAuth="editAuth"
:delAuth="delAuth"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:importUrl="importUrl"
:mubanUrl="mubanUrl"
:editParams="editParams"
:editElseRules="editElseRules"
idName="icDangerousChemicalsId"
></base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { getItemByIdInCascader, collapse } from "@/utils/cascader";
export default {
props: {},
data() {
return {
searchParams: [
{
field: "所属组织",
keyName: "orgId",
type: "cascader",
value: "",
supKeys: ["orgType"],
supValues: [""],
optionUrl: "/gov/org/customeragency/agencygridtreeV2",
optionUrlParams: {
customerId: this.$store.state.user.customerId,
},
optionList: [],
optionProps: {
multiple: false,
value: "agencyId",
label: "agencyName",
children: "subAgencyList",
checkStrictly: true,
emitPath: false,
},
optionCook(obj) {
return [obj];
},
handleChangeFn(val, item, that) {
const { optionList } = item;
const optionPlaneList = collapse(
optionList,
"subAgencyList"
);
if (val) {
let selectedItem = getItemByIdInCascader(
optionPlaneList,
[val],
"agencyId",
"subAgencyList"
)[0];
item["supValues"][0] =
selectedItem.level == "grid"
? "grid"
: "agency";
console.log("handleChangeFn", selectedItem);
} else {
item["supValues"][0] = "";
}
},
},
{ field: "代办员姓名", keyName: "name", type: "input" },
{ field: "手机号", keyName: "phone", type: "input" },
{ field: "身份证号", keyName: "mobile", type: "input" },
],
tableParams: [
{ field: "序号", keyName: "", type: "no" },
{ field: "所属组织", keyName: "orgName", type: "text" },
{ field: "代办员姓名", keyName: "name", type: "text" },
{ field: "性别", keyName: "gender", type: "text" },
{ field: "年龄", keyName: "age", type: "text" },
{ field: "学历", keyName: "edu", type: "text" },
{ field: "联系电话", keyName: "mobile", type: "text" },
{ field: "身份证号", keyName: "idCard", type: "text" },
],
tableUrl: "【GET】/epmetuser/lingshan/serviceAgent/work/agentList",
mubanUrl: "",
importUrl: "",
exportUrl: "/gov/org/icDangerousChemicals/export",
// addUrl: "/gov/org/staff/addstaffv2",
editUrl: "/gov/org/staff/editstaff",
infoUrl: "/gov/org/staff/editstaffinit",
delUrl: "/gov/org/icDangerousChemicals/del",
// editAuth(item) {
// return item.agencyId == this.$store.state.user.agencyId;
// },
// delAuth(item) {
// return item.agencyId == this.$store.state.user.agencyId;
// },
editParams: [
// {
// field: "",
// keyName: "orgId",
// type: "cascader",
// value: () => [],
// supKeys: ["orgType"],
// supValues: [""],
// optionUrl: "/gov/org/customeragency/agencygridtreeV2",
// optionUrlParams: {
// customerId: this.$store.state.user.customerId,
// },
// optionList: [],
// optionProps: {
// multiple: false,
// value: "agencyId",
// label: "agencyName",
// children: "subAgencyList",
// checkStrictly: true,
// emitPath: false,
// },
// optionCook(obj) {
// return [obj];
// },
// handleChangeFn(val, item, that) {
// const { optionList } = item;
// const optionPlaneList = collapse(
// optionList,
// "subAgencyList"
// );
// if (val) {
// let selectedItem = getItemByIdInCascader(
// optionPlaneList,
// [val],
// "agencyId",
// "subAgencyList"
// )[0];
// that.fmData[item["keyName"]] =
// selectedItem.agencyId;
// that.fmData[item["supKeys"][0]] =
// selectedItem.level == "grid"
// ? "grid"
// : "agency";
// console.log("handleChangeFn", selectedItem);
// } else {
// that.fmData[item["keyName"]] = "";
// that.fmData[item["supKeys"][0]] = "";
// }
// },
// rules: [
// {
// required: true,
// message: "",
// trigger: "blur",
// },
// ],
// },
{
field: "代办员姓名",
keyName: "name",
type: "input",
maxlength: 50,
editDisabled: false,
rules: [
{
required: true,
message: "代办员姓名不能为空",
trigger: "blur",
},
],
},
{
field: "手机号",
keyName: "mobile",
type: "input",
maxlength: 50,
editDisabled: false,
rules: [
{
required: true,
message: "手机号不能为空",
trigger: "blur",
},
],
},
{
field: "身份证号",
keyName: "idCard",
type: "input",
maxlength: 50,
editDisabled: false,
rules: [
{
required: true,
message: "身份证号不能为空",
trigger: "blur",
},
],
},
{
field: "学历",
keyName: "edu",
type: "select",
optionUrl: "/sys/dict/data/education",
optionUrlParams: {
formCode: "resi_base_info",
},
optionList: () => [],
editDisabled: false,
rules: [
{
required: true,
message: "学历不能为空",
trigger: "blur",
},
],
},
{
field: "专兼职",
keyName: "workType",
type: "select",
optionUrl: "",
optionUrlParams: {},
optionList: () => [
{ value: "fulltime", label: "专职" },
{ value: "parttime", label: "兼职" },
],
editDisabled: false,
rules: [
{
required: true,
message: "专兼职不能为空",
trigger: "blur",
},
],
},
{
field: "职责",
keyName: "roleList",
multiple: true,
type: "select",
optionUrl: "/gov/org/staff/rolelist",
optionUrlParams: {
agencyId: this.$store.state.user.agencyId,
},
optionList: () => [],
editDisabled: false,
rules: [
{
required: true,
message: "职责不能为空",
trigger: "blur",
},
],
},
{
field: "角色",
keyName: "newRoleList",
multiple: true,
type: "select",
optionUrl: "/gov/access/govrole/list",
optionUrlMethod: "get",
optionUrlParams: {},
optionList: () => [],
editDisabled: false,
rules: [
{
required: true,
message: "角色不能为空",
trigger: "blur",
},
],
},
],
editElseRules: {},
editConfig: {},
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {},
};
</script>
<style lang="scss" scoped></style>

4
src/views/modules/lingshan/shzl/mapConfig.vue

@ -304,7 +304,8 @@ const vueGis = {
method: "", // method: "", //
centerPoint: [], // centerPoint: [], //
zoom: 14, //14 zoom: 14, //14
minZoom: 1, // minZoom: 6, //
maxZoom: 18,
isMapLoaded: false, // isMapLoaded: false, //
orgData: {}, // orgData: {}, //
@ -700,6 +701,7 @@ const vueGis = {
projection: "EPSG:4326", projection: "EPSG:4326",
zoom: this.zoom, zoom: this.zoom,
minZoom: this.minZoom, minZoom: this.minZoom,
maxZoom: this.maxZoom,
})), })),
//map //map
// //

13
src/views/modules/lingshan/xtgl/articleCategory.vue

@ -113,13 +113,22 @@
class="div-table-button--edit" class="div-table-button--edit"
>修改</el-button >修改</el-button
> >
<el-popconfirm
v-if="scope.row.level != 1"
title="删除之后无法回复,确认删除?"
@onConfirm="handleDel(scope.row, scope.$index)"
@confirm="handleDel(scope.row, scope.$index)"
>
<el-button <el-button
@click="handleDel(scope.row)" slot="reference"
type="text" type="text"
size="small" size="small"
class="div-table-button--edit" style="margin-left: 10px"
class="div-table-button--del"
>删除</el-button >删除</el-button
> >
</el-popconfirm>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

4
vue.config.js

@ -3,7 +3,7 @@
*/ */
const IS_PROD = ['production', 'test'].includes(process.env.NODE_ENV) const IS_PROD = ['production', 'test'].includes(process.env.NODE_ENV)
module.exports = { module.exports = {
baseUrl: process.env.NODE_ENV === 'production' ? '' : '/lingshan-oper', baseUrl: process.env.NODE_ENV === 'production' ? '' : '/epmet-oper-gov',
css: { css: {
// 是否使用css分离插件 ExtractTextPlugin // 是否使用css分离插件 ExtractTextPlugin
extract: IS_PROD, extract: IS_PROD,
@ -23,7 +23,7 @@ module.exports = {
.loader('svg-sprite-loader') .loader('svg-sprite-loader')
}, },
productionSourceMap: false, productionSourceMap: false,
outputDir: 'dist', outputDir: 'epmet-oper-gov',
assetsDir: 'static', assetsDir: 'static',
devServer: { devServer: {
open: true, open: true,

Loading…
Cancel
Save