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. 1329
      src/views/modules/base/organization/organization.vue
  7. 386
      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_PUBLIC_PATH=lingshan-oper
VUE_APP_PUBLIC_PATH=epmet-oper-gov

2
.env.production

@ -1,4 +1,4 @@
NODE_ENV=production
VUE_APP_API_SERVER = https://lingshan-smps.elinkservice.cn/api
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
VUE_APP_API_SERVER = http://119.167.72.91/api
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
VUE_APP_API_SERVER = http://119.167.72.91/api
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.brand = {}
t.brand.lg = '数字社区综合服务平台'
t.brand.mini = '数字'
t.brand.work = '数字社区综合服务平台'
t.brand.workMini = '工作端'
t.brand.lg = '灵山街道乡村治理智慧管理平台'
t.brand.mini = '灵山'
t.brand.work = '灵山街道乡村治理智慧管理平台'
t.brand.workMini = '灵山'
t.add = '新增'
t.delete = '删除'

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

File diff suppressed because it is too large

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

@ -1,40 +1,52 @@
<template>
<div class="div_main">
<div v-show="true">
<div class="div_search"
ref="ref_search">
<el-form :inline="true"
<div class="div_search" ref="ref_search">
<el-form
:inline="true"
ref="ref_searchform"
label-width="100px">
label-width="100px"
>
<div>
<el-form-item v-for="item in searchParams"
<el-form-item
v-for="item in searchParams"
:key="'serach' + item.keyName"
:label="item.field"
:prop="item.keyName">
:prop="item.keyName"
>
<template v-if="item.type == 'input'">
<el-input v-model="item.value"
<el-input
v-model="item.value"
style="width: 240px"
size="small"
clearable
:placeholder="item.placeholder || '请输入'">
:placeholder="item.placeholder || '请输入'"
>
</el-input>
</template>
<template v-else-if="item.type == 'select'">
<el-select v-model="item.value"
<el-select
v-model="item.value"
:placeholder="item.placeholder || '请选择'"
size="small"
clearable
style="width: 240px"
:multiple="item.multiple || false">
<el-option v-for="item in item.optionList"
:key="'serach' + item.keyName + item.value"
:multiple="item.multiple || false"
>
<el-option
v-for="item in item.optionList"
:key="
'serach' + item.keyName + item.value
"
:label="item.label"
:value="item.value">
:value="item.value"
>
</el-option>
</el-select>
</template>
<template v-else-if="item.type == 'cascader'">
<el-cascader v-model="item.value"
<el-cascader
v-model="item.value"
:placeholder="item.placeholder || '请选择'"
:options="item.optionList"
:props="item.optionProps"
@ -42,54 +54,82 @@
size="small"
clearable
style="width: 240px"
@change="(e) => handleChangeCascader(e, item)">
@change="
(e) => handleChangeCascader(e, item)
"
>
</el-cascader>
</template>
<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"
placeholder="开始时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable>
clearable
>
</el-date-picker>
<span style="display: inline-block; margin: 0 10px"></span>
<el-date-picker v-model="item.supValues[1]"
<span
style="
display: inline-block;
margin: 0 10px;
"
></span
>
<el-date-picker
v-model="item.supValues[1]"
type="date"
placeholder="结束时间"
style="width: 150px"
value-format="yyyy-MM-dd"
clearable>
clearable
>
</el-date-picker>
</template>
</el-form-item>
<el-button style="margin-left: 30px; margin-bottom: 20px"
<el-button
style="margin-left: 30px; margin-bottom: 20px"
size="small"
class="diy-button--search"
@click="handleSearch">查询</el-button>
<el-button style="margin-left: 10px; margin-bottom: 20px"
@click="handleSearch"
>查询</el-button
>
<el-button
style="margin-left: 10px; margin-bottom: 20px"
size="small"
class="diy-button--reset"
@click="resetSearch">重置</el-button>
@click="resetSearch"
>重置</el-button
>
</div>
</el-form>
</div>
<div class="div_table"
:style="{ height: maxTableHeight + 130 + 'px' }">
<div
class="div_table"
:style="{ height: maxTableHeight + 130 + 'px' }"
>
<div class="div_btn">
<el-button class="diy-button--add"
<el-button
class="diy-button--add"
v-if="addUrl"
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"
size="small"
@click="handleExportModule('room')">下载模板</el-button>
@click="handleExportModule('room')"
>下载模板</el-button
>
<el-upload :headers="$getElUploadHeaders()"
<el-upload
:headers="$getElUploadHeaders()"
v-if="importUrl"
ref="upload"
class="upload-btn"
@ -100,123 +140,179 @@
:show-file-list="false"
:auto-upload="true"
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest">
<el-button size="small"
class="btn_upload diy-button--delete">导入</el-button>
:http-request="uploadHttpRequest"
>
<el-button
size="small"
class="btn_upload diy-button--delete"
>导入</el-button
>
</el-upload>
<el-button v-if="exportUrl"
<el-button
v-if="exportUrl"
@click="handleExport"
class="btn_upload diy-button--reset"
size="small">导出</el-button>
<el-button v-if="qrCodeExportUrl"
size="small"
>导出</el-button
>
<el-button
v-if="qrCodeExportUrl"
@click="handleExportQrcode"
class="btn_upload diy-button--reset"
size="small">导出员工登记码</el-button>
<el-button v-if="delMultipleUrl"
size="small"
@click="handleDeleteMultiple">批量删除</el-button>
<slot name="listBtn"
v-bind:multipleSelection="multipleSelection"></slot>
>导出员工登记码</el-button
>
<el-button
v-if="delMultipleUrl"
size="small"
@click="handleDeleteMultiple"
>批量删除</el-button
>
<slot
name="listBtn"
v-bind:multipleSelection="multipleSelection"
></slot>
</div>
<el-table ref="ref_table"
<el-table
ref="ref_table"
:data="tableData"
border
:empty-text="loadInfo"
:header-cell-style="{ background: '#2195FE', color: '#FFFFFF' }"
:header-cell-style="{
background: '#2195FE',
color: '#FFFFFF',
}"
class="table"
style="width: 100%"
:height="maxTableHeight"
@selection-change="handleSelectionChange">
<template v-for="(item, index) in tableParams"
:prop="item.keyName">
<el-table-column v-if="item.type == 'selection'"
@selection-change="handleSelectionChange"
>
<template
v-for="(item, index) in tableParams"
:prop="item.keyName"
>
<el-table-column
v-if="item.type == 'selection'"
:key="'table-selection' + index"
type="selection"
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"
:label="item.field"
fixed="left"
type="index"
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"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true">
:show-overflow-tooltip="true"
>
</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"
:prop="item.keyName"
:label="item.field"
align="center"
:width="item.width || ''"
:show-overflow-tooltip="true">
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
{{ scope.row[item.keyName].join(item.arrayDiv || ",") }}
{{
scope.row[item.keyName].join(
item.arrayDiv || ","
)
}}
</template>
</el-table-column>
</template>
<el-table-column v-if="operateCol"
<el-table-column
v-if="operateCol"
fixed="right"
label="操作"
align="center"
width="200">
width="200"
>
<template slot-scope="scope">
<slot name="listBtnbefore"
v-bind:item="scope.row"></slot>
<el-button v-if="infoUrl && infoAuth(scope.row)"
<slot
name="listBtnbefore"
v-bind:item="scope.row"
></slot>
<el-button
v-if="infoUrl && infoAuth(scope.row)"
@click="handleWatch(scope.row)"
type="text"
size="small"
class=".div-table-button--detail">查看</el-button>
<el-button v-if="editUrl && editAuth(scope.row)"
class=".div-table-button--detail"
>查看</el-button
>
<el-button
v-if="editUrl && editAuth(scope.row)"
@click="handleEdit(scope.row)"
type="text"
size="small"
class="div-table-button--edit">{{ editBtnName(scope.row) }}</el-button>
<el-popconfirm v-if="delUrl && delAuth(scope.row)"
class="div-table-button--edit"
>{{ editBtnName(scope.row) }}</el-button
>
<el-popconfirm
v-if="delUrl && delAuth(scope.row)"
title="删除之后无法回复,确认删除?"
@onConfirm="handleDelete(scope.row, scope.$index)"
@confirm="handleDelete(scope.row, scope.$index)">
<el-button slot="reference"
@onConfirm="
handleDelete(scope.row, scope.$index)
"
@confirm="handleDelete(scope.row, scope.$index)"
>
<el-button
slot="reference"
type="text"
size="small"
style="margin-left: 10px"
class="div-table-button--delete">删除</el-button>
class="div-table-button--delete"
>删除</el-button
>
</el-popconfirm>
<slot name="listBtnSup"
v-bind:item="scope.row"></slot>
<slot
name="listBtnSup"
v-bind:item="scope.row"
></slot>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[20, 50, 100, 200]"
:page-size="parseInt(pageSize)"
layout="sizes, prev, pager, next, total"
:total="total">
:total="total"
>
</el-pagination>
</div>
</div>
</div>
<!-- 修改弹出框 -->
<el-dialog v-if="formShow"
<el-dialog
v-if="formShow"
:visible.sync="formShow"
:close-on-click-modal="false"
:close-on-press-escape="false"
@ -224,8 +320,10 @@
:width="editParamsDiv ? '1100px' : '850px'"
top="5vh"
class="dialog-h"
@closed="handleClose">
<edit-form v-if="formShow"
@closed="handleClose"
>
<edit-form
v-if="formShow"
ref="editForm"
:idName="idName"
:formId="formId"
@ -240,18 +338,23 @@
:formBtnFixed="formBtnFixed"
:editConfig="editConfig"
@close="handleClose"
@afterEdit="handleEditSuccess">
@afterEdit="handleEditSuccess"
>
<template v-slot:bottomSup="{ id, formType, info }">
<slot name="editBottomSup"
<slot
name="editBottomSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"></slot>
v-bind:info="info"
></slot>
</template>
<template v-slot:operateSup="{ id, formType, info }">
<slot name="editOperateSup"
<slot
name="editOperateSup"
v-bind:id="id"
v-bind:formType="formType"
v-bind:info="info"></slot>
v-bind:info="info"
></slot>
</template>
</edit-form>
</el-dialog>
@ -384,10 +487,10 @@ export default {
},
},
data () {
data() {
return {
tableData: [],
loadInfo: '',
loadInfo: "",
pageNo: 1,
pageSize: window.localStorage.getItem("pageSize") || 20,
@ -405,10 +508,13 @@ export default {
},
computed: {
maxTableHeight () {
maxTableHeight() {
const { ref_search_height } = this;
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;
},
...mapGetters(["clientHeight", "iframeHeight"]),
@ -416,7 +522,7 @@ export default {
watch: {},
async mounted () {
async mounted() {
console.log(this.$store.state);
this.user = this.$store.state.user;
@ -430,24 +536,24 @@ export default {
this.computeSearchHeight();
},
activated () {
activated() {
console.log("-------------activated");
this.$refs["ref_table"].doLayout();
},
methods: {
handleSelectionChange (val) {
handleSelectionChange(val) {
console.log(val);
this.multipleSelection = val;
},
computeSearchHeight () {
computeSearchHeight() {
this.ref_search_height = this.$refs["ref_search"].clientHeight;
console.log(this.$refs["ref_search"]);
console.log(this.ref_search_height);
},
iniSearchData () {
iniSearchData() {
const { searchParams } = this;
searchParams.forEach((item, index) => {
if (item.type == "select" || item.type == "cascader") {
@ -472,7 +578,7 @@ export default {
});
},
async getFmOptions (index, url, params, cookFn) {
async getFmOptions(index, url, params, cookFn) {
const { data, code, msg } = await requestPost(url, {
...params,
});
@ -498,19 +604,19 @@ export default {
}
},
handleChangeCascader (vals, item) {
handleChangeCascader(vals, item) {
if (typeof item.handleChangeFn == "function") {
item.handleChangeFn(vals, item);
}
},
handleSearch (val) {
handleSearch(val) {
this.pageNo = 1;
this.getTableData();
},
beforeExcelUpload (file) {
beforeExcelUpload(file) {
console.log("file", file);
const isType = file.type === "application/vnd.ms-excel";
const isTypeComputer =
@ -528,7 +634,7 @@ export default {
return fileType && isLt1M;
},
async uploadHttpRequest (file) {
async uploadHttpRequest(file) {
let { importUrl: url } = this;
if (!url) return;
@ -557,7 +663,7 @@ export default {
});
},
async handleExportModule () {
async handleExportModule() {
let { mubanUrl: url } = this;
if (!url) return;
@ -571,7 +677,9 @@ export default {
// this.download(res.data, title + '.xls')
if (res.headers["content-disposition"]) {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
);
console.log("filename", fileName);
let blob = new Blob([res.data], {
@ -594,7 +702,7 @@ export default {
});
},
async handleExport () {
async handleExport() {
const { exportUrl: url } = this;
if (!url) return;
@ -612,10 +720,14 @@ export default {
})
.then((res) => {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
);
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 aLink = document.createElement("a");
aLink.style.display = "none";
@ -631,7 +743,7 @@ export default {
return this.$message.error("网络错误");
});
},
async handleExportQrcode () {
async handleExportQrcode() {
const { qrCodeExportUrl: url } = this;
if (!url) return;
@ -649,10 +761,14 @@ export default {
})
.then((res) => {
let fileName = window.decodeURI(
res.headers["content-disposition"].split(";")[1].split("=")[1]
res.headers["content-disposition"]
.split(";")[1]
.split("=")[1]
);
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 aLink = document.createElement("a");
aLink.style.display = "none";
@ -669,13 +785,13 @@ export default {
});
},
handleAdd () {
handleAdd() {
this.formType = "add";
this.formTitle = "新增";
this.formShow = true;
},
handleWatch (row) {
handleWatch(row) {
const { idName } = this;
this.formType = "watch";
this.formId = row[idName];
@ -683,7 +799,7 @@ export default {
this.formShow = true;
},
handleEdit (row) {
handleEdit(row) {
const { idName } = this;
this.formType = "edit";
this.formId = row[idName];
@ -691,17 +807,17 @@ export default {
this.formShow = true;
},
handleClose () {
handleClose() {
this.formShow = false;
this.getTableData();
},
handleEditSuccess () {
handleEditSuccess() {
this.handleClose();
// this.getTableData();
},
async handleDeleteMultiple () {
async handleDeleteMultiple() {
let { delMultipleUrl: url } = this;
if (!url) return;
@ -719,7 +835,7 @@ export default {
}
},
async handleDelete (rowData, rowIndex) {
async handleDelete(rowData, rowIndex) {
console.log(rowData, rowIndex);
let { delUrl: url } = this;
if (!url) return;
@ -747,7 +863,7 @@ export default {
}
},
computeFmData () {
computeFmData() {
let fmData = {};
this.searchParams.forEach((item) => {
fmData[item.keyName] = item.value;
@ -760,47 +876,69 @@ export default {
return fmData;
},
refresh () {
refresh() {
this.getTableData();
},
async getTableData () {
this.loadInfo = '数据加载中'
const { tableUrl: url } = this;
async getTableData() {
this.loadInfo = "数据加载中";
let { tableUrl: url } = this;
if (!url) return;
let req = requestPost;
if (url.startsWith("【GET】")) {
url = url.substr(5);
req = requestGet;
}
const { pageSize, pageNo } = this;
const { data, code, msg } = await requestPost(url, {
const { data, code, msg } = await req(url, {
pageSize,
pageNo,
...this.computeFmData(),
});
if (code === 0) {
this.total = data.total || 0;
this.tableData = data.list ? this.cookTableData(data.list) : [];
let total = 0,
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) {
this.loadInfo = '暂无数据'
this.loadInfo = "暂无数据";
} else {
this.loadInfo = ''
this.loadInfo = "";
}
} else {
this.$message.error(msg);
}
},
handleSizeChange (val) {
handleSizeChange(val) {
this.pageSize = val;
window.localStorage.setItem("pageSize", val);
this.getTableData();
},
handleCurrentChange (val) {
handleCurrentChange(val) {
this.pageNo = val;
this.getTableData();
},
resetSearch () {
resetSearch() {
console.log("----------------resetSearch", this.searchParams);
this.searchParams.forEach((item) => {
if (typeof item.value == "string") {

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: "", //
centerPoint: [], //
zoom: 14, //14
minZoom: 1, //
minZoom: 6, //
maxZoom: 18,
isMapLoaded: false, //
orgData: {}, //
@ -700,6 +701,7 @@ const vueGis = {
projection: "EPSG:4326",
zoom: this.zoom,
minZoom: this.minZoom,
maxZoom: this.maxZoom,
})),
//map
//

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

@ -113,13 +113,22 @@
class="div-table-button--edit"
>修改</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
@click="handleDel(scope.row)"
slot="reference"
type="text"
size="small"
class="div-table-button--edit"
style="margin-left: 10px"
class="div-table-button--del"
>删除</el-button
>
</el-popconfirm>
</template>
</el-table-column>
</el-table>

4
vue.config.js

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

Loading…
Cancel
Save