Browse Source

fix

master
张泽亮 1 week ago
parent
commit
bc7a169f08
12 changed files with 569 additions and 350 deletions
  1. +16
    -8
      src/api/business/cjqy.js
  2. +13
    -5
      src/api/business/export.js
  3. +13
    -5
      src/api/business/import.js
  4. +16
    -8
      src/api/business/xjqy.js
  5. +16
    -8
      src/api/business/xjxzq.js
  6. +3
    -4
      src/components/FileUpload/index.vue
  7. +2
    -4
      src/components/ImageUpload/index.vue
  8. +44
    -38
      src/views/business/cjqy/index.vue
  9. +171
    -90
      src/views/business/export/index.vue
  10. +187
    -104
      src/views/business/import/index.vue
  11. +44
    -38
      src/views/business/xjqy/index.vue
  12. +44
    -38
      src/views/business/xjxzq/index.vue

+ 16
- 8
src/api/business/cjqy.js View File

@@ -10,9 +10,17 @@ export function listCjqy(query) {
}

// 查询村级区域详细
export function getCjqy(CJQYDM) {
export function getCjqy(fid) {
return request({
url: '/business/cjqy/' + CJQYDM,
url: '/business/cjqy/' + fid,
method: 'get'
})
}

// 查询村级区域详细
export function getCjqyDetail(fid) {
return request({
url: '/business/cjqy/detail/' + fid,
method: 'get'
})
}
@@ -21,7 +29,7 @@ export function getCjqy(CJQYDM) {
// 新增村级区域
export function addCjqy(data) {
return request({
url: '/business/cjqy',
url: '/business/cjqy/add',
method: 'post',
data: data
})
@@ -30,17 +38,17 @@ export function addCjqy(data) {
// 修改村级区域
export function updateCjqy(data) {
return request({
url: '/business/cjqy',
method: 'put',
url: '/business/cjqy/update',
method: 'post',
data: data
})
}

// 删除村级区域
export function delCjqy(CJQYDM) {
export function delCjqy(fid) {
return request({
url: '/business/cjqy/' + CJQYDM,
method: 'delete'
url: '/business/cjqy/delete/' + fid,
method: 'get'
})
}



+ 13
- 5
src/api/business/export.js View File

@@ -17,11 +17,19 @@ export function getExport(id) {
})
}

// 查询导出任务详细
export function getExportDetail(id) {
return request({
url: '/business/export/detail/' + id,
method: 'get'
})
}


// 新增导出任务
export function addExport(data) {
return request({
url: '/business/export',
url: '/business/export/add',
method: 'post',
data: data
})
@@ -30,8 +38,8 @@ export function addExport(data) {
// 修改导出任务
export function updateExport(data) {
return request({
url: '/business/export',
method: 'put',
url: '/business/export/update',
method: 'post',
data: data
})
}
@@ -39,8 +47,8 @@ export function updateExport(data) {
// 删除导出任务
export function delExport(id) {
return request({
url: '/business/export/' + id,
method: 'delete'
url: '/business/export/delete/' + id,
method: 'get'
})
}



+ 13
- 5
src/api/business/import.js View File

@@ -17,11 +17,19 @@ export function getImport(id) {
})
}

// 查询导入任务详细
export function getImportDetail(id) {
return request({
url: '/business/import/detail/' + id,
method: 'get'
})
}


// 新增导入任务
export function addImport(data) {
return request({
url: '/business/import',
url: '/business/import/add',
method: 'post',
data: data
})
@@ -30,8 +38,8 @@ export function addImport(data) {
// 修改导入任务
export function updateImport(data) {
return request({
url: '/business/import',
method: 'put',
url: '/business/import/update',
method: 'post',
data: data
})
}
@@ -39,8 +47,8 @@ export function updateImport(data) {
// 删除导入任务
export function delImport(id) {
return request({
url: '/business/import/' + id,
method: 'delete'
url: '/business/import/delete/' + id,
method: 'get'
})
}



+ 16
- 8
src/api/business/xjqy.js View File

@@ -10,9 +10,17 @@ export function listXjqy(query) {
}

// 查询乡级区域详细
export function getXjqy(XJQYDM) {
export function getXjqy(fid) {
return request({
url: '/business/xjqy/' + XJQYDM,
url: '/business/xjqy/' + fid,
method: 'get'
})
}

// 查询乡级区域详细
export function getXjqyDetail(fid) {
return request({
url: '/business/xjqy/detail/' + fid,
method: 'get'
})
}
@@ -21,7 +29,7 @@ export function getXjqy(XJQYDM) {
// 新增乡级区域
export function addXjqy(data) {
return request({
url: '/business/xjqy',
url: '/business/xjqy/add',
method: 'post',
data: data
})
@@ -30,17 +38,17 @@ export function addXjqy(data) {
// 修改乡级区域
export function updateXjqy(data) {
return request({
url: '/business/xjqy',
method: 'put',
url: '/business/xjqy/update',
method: 'post',
data: data
})
}

// 删除乡级区域
export function delXjqy(XJQYDM) {
export function delXjqy(fid) {
return request({
url: '/business/xjqy/' + XJQYDM,
method: 'delete'
url: '/business/xjqy/delete/' + fid,
method: 'get'
})
}



+ 16
- 8
src/api/business/xjxzq.js View File

@@ -10,9 +10,17 @@ export function listXjxzq(query) {
}

// 查询县级区域详细
export function getXjxzq(XZQDM) {
export function getXjxzq(fid) {
return request({
url: '/business/xjxzq/' + XZQDM,
url: '/business/xjxzq/' + fid,
method: 'get'
})
}

// 查询县级区域详细
export function getXjxzqDetail(fid) {
return request({
url: '/business/xjxzq/detail/' + fid,
method: 'get'
})
}
@@ -21,7 +29,7 @@ export function getXjxzq(XZQDM) {
// 新增县级区域
export function addXjxzq(data) {
return request({
url: '/business/xjxzq',
url: '/business/xjxzq/add',
method: 'post',
data: data
})
@@ -30,17 +38,17 @@ export function addXjxzq(data) {
// 修改县级区域
export function updateXjxzq(data) {
return request({
url: '/business/xjxzq',
method: 'put',
url: '/business/xjxzq/update',
method: 'post',
data: data
})
}

// 删除县级区域
export function delXjxzq(XZQDM) {
export function delXjxzq(fid) {
return request({
url: '/business/xjxzq/' + XZQDM,
method: 'delete'
url: '/business/xjxzq/delete/' + fid,
method: 'get'
})
}



+ 3
- 4
src/components/FileUpload/index.vue View File

@@ -20,10 +20,9 @@
<el-button size="mini" type="primary">选取文件</el-button>
<!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip">
请上传
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
的文件
<template v-if="fileSize"> 大小: ≤ <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
<template v-if="fileType"> 格式: <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>

</div>
</el-upload>



+ 2
- 4
src/components/ImageUpload/index.vue View File

@@ -24,10 +24,8 @@

<!-- 上传提示 -->
<div class="el-upload__tip" slot="tip" v-if="showTip && !disabled">
请上传
<template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
<template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
的文件
<template v-if="fileSize"> 大小: ≤ <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>
<template v-if="fileType"> 格式: <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>
</div>

<el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body>


+ 44
- 38
src/views/business/cjqy/index.vue View File

@@ -4,8 +4,11 @@
<el-form-item label="区划代码" prop="CJQYDM">
<el-input v-model="queryParams.CJQYDM" placeholder="请输入区划代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="区划名称" prop="CJQYMC">
<el-input v-model="queryParams.CJQYMC" placeholder="请输入区划名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="级联代码" prop="importCode">
<el-input v-model="queryParams.importCode" placeholder="请输入部门级联代码" clearable @keyup.enter.native="handleQuery"/>
<el-input v-model="queryParams.importCode" placeholder="请输入级联代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -45,12 +48,18 @@
<el-table-column label="区划名称" align="center" prop="CJQYMC" />
<el-table-column label="标识码" align="center" prop="BSM" />
<el-table-column label="要素代码" align="center" prop="YSDM" />
<el-table-column label="部门级联代码" align="center" prop="importCode" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="级联代码" align="center" prop="importCode" />
<el-table-column label="fid" align="center" prop="fid" min-width="60"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="250">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleLook(scope.row)" v-hasPermi="['business:cjqy:query']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:cjqy:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:cjqy:remove']">删除</el-button>
<el-dropdown size="mini" v-hasPermi="['business:cjqy:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown" style="padding: 5px">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:cjqy:remove']">删除</el-button>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@@ -80,12 +89,11 @@
<!-- 查看村级区域对话框 -->
<el-dialog :title="title" :visible.sync="viewOpen" width="800px" append-to-body>
<el-descriptions id="printDetail" :column="descColumn" border :labelStyle="{width: `${descLabelWidth}%`}" :contentStyle="{width: `${(100 / descColumn) - descLabelWidth}%`}">
<el-descriptions-item label="区划代码">{{ form.CJQYDM }}</el-descriptions-item>
<el-descriptions-item label="区划名称">{{ form.CJQYMC }}</el-descriptions-item>
<el-descriptions-item label="空间矢量">{{ form.theGeom }}</el-descriptions-item>
<el-descriptions-item label="标识码">{{ form.BSM }}</el-descriptions-item>
<el-descriptions-item label="要素代码">{{ form.YSDM }}</el-descriptions-item>
<el-descriptions-item label="fid">{{ form.fid }}</el-descriptions-item>
<el-descriptions-item label="部门级联代码">{{ form.importCode }}</el-descriptions-item>
<el-descriptions-item label="级联代码">{{ form.importCode }}</el-descriptions-item>
</el-descriptions>
<!-- 弹框操作按钮 -->
<div slot="footer" class="dialog-footer">
@@ -95,25 +103,22 @@
</el-dialog>

<!-- 添加或修改村级区域对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="区划代码" prop="CJQYDM">
<el-input v-model="form.CJQYDM" placeholder="请输入区划代码" show-word-limit :maxlength="12"/>
</el-form-item>
<el-form-item label="区划名称" prop="CJQYMC">
<el-input v-model="form.CJQYMC" placeholder="请输入区划名称" show-word-limit :maxlength="100"/>
</el-form-item>
<el-form-item label="空间矢量" prop="theGeom">
<el-input v-model="form.theGeom" type="textarea" :autosize="{ minRows: 2, maxRows: 3}" :maxlength="100" show-word-limit placeholder="请输入内容" />
</el-form-item>
<el-form-item label="标识码" prop="BSM">
<el-input-number v-model="form.BSM" placeholder="请输入标识码" controls-position="right" />
</el-form-item>
<el-form-item label="要素代码" prop="YSDM">
<el-input v-model="form.YSDM" placeholder="请输入要素代码" show-word-limit :maxlength="6"/>
</el-form-item>
<el-form-item label="fid" prop="fid">
<el-input-number v-model="form.fid" placeholder="请输入fid" controls-position="right" />
</el-form-item>
<el-form-item label="部门级联代码" prop="importCode">
<el-input v-model="form.importCode" placeholder="请输入部门级联代码" show-word-limit :maxlength="20"/>
<el-form-item label="级联代码" prop="importCode">
<el-input v-model="form.importCode" placeholder="请输入级联代码" show-word-limit :maxlength="20"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -125,7 +130,7 @@
</template>

<script>
import { listCjqy, getCjqy, delCjqy, addCjqy, updateCjqy, printCjqy } from "@/api/business/cjqy"
import { listCjqy, getCjqy, getCjqyDetail, delCjqy, addCjqy, updateCjqy, printCjqy } from "@/api/business/cjqy"
import { getToken } from "@/utils/auth"
export default {
name: "Cjqy",
@@ -158,7 +163,7 @@ export default {
// 对话框显示只读的详情
viewOpen: false,
// 项目路径
baseRoutingUrl: process.env.VUE_APP_BASE_API,
baseRoutingUrll: process.env.VUE_APP_BASE_API,
// 查询参数
queryParams: {
pageNum: 1,
@@ -169,21 +174,22 @@ export default {
// 翻译字典
//toTranslateDict: "1",
CJQYDM: null,
importCode: null
CJQYMC: null,
importCode: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
CJQYDM: [
{ required: true, message: "区划代码不能为空", trigger: "blur" }
],
CJQYMC: [
{ required: true, message: "区划名称不能为空", trigger: "blur" }
],
theGeom: [
{ required: true, message: "空间矢量不能为空", trigger: "blur" }
],
importCode: [
{ required: true, message: "部门级联代码不能为空", trigger: "blur" }
]
{ required: true, message: "级联代码不能为空", trigger: "blur" }
],
},
// EXCEL导入
upload: {
@@ -229,11 +235,11 @@ export default {
this.form = {
CJQYDM: null,
CJQYMC: null,
theGeom: null,
BSM: null,
YSDM: null,
fid: null,
importCode: null
theGeom: null,
importCode: null,
fid: null
}
this.resetForm("form")
},
@@ -249,7 +255,7 @@ export default {
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.CJQYDM)
this.ids = selection.map(item => item.fid)
this.single = selection.length!==1
this.multiple = !selection.length
},
@@ -262,8 +268,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const CJQYDM = row.CJQYDM || this.ids
getCjqy(CJQYDM).then(response => {
const fid = row.fid || this.ids
getCjqy(fid).then(response => {
this.form = response.data
this.open = true
this.title = "修改村级区域"
@@ -271,8 +277,8 @@ export default {
},
/** 查看按钮操作 */
handleLook(row) {
const CJQYDM = row.CJQYDM || this.ids
getCjqy(CJQYDM).then(response => {
const fid = row.fid || this.ids
getCjqyDetail(fid).then(response => {
this.form = response.data;
this.viewOpen = true;
this.title = "查看村级区域";
@@ -282,7 +288,7 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.CJQYDM != null) {
if (this.form.fid != null) {
updateCjqy(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
@@ -300,9 +306,9 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
const CJQYDMs = row.CJQYDM || this.ids
this.$modal.confirm('是否确认删除村级区域编号为"' + CJQYDMs + '"的数据项?').then(function() {
return delCjqy(CJQYDMs)
const fids = row.fid || this.ids
this.$modal.confirm('是否确认删除村级区域编号为"' + fids + '"的数据项?').then(function() {
return delCjqy(fids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
@@ -391,7 +397,7 @@ export default {
/** 下载模板操作 */
importTemplate() {
this.download('business/cjqy/importTemplate', {
}, `cjqy_template.xlsx`)
}, `村级区域_template.xlsx`)
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {


+ 171
- 90
src/views/business/export/index.vue View File

@@ -1,94 +1,116 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-row :gutter="20">
<splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme">
<!--部门数据-->
<pane size="16">
<el-col>
<div class="head-container">
<el-input v-model="deptName" placeholder="请输入区划名称" clearable size="small" prefix-icon="el-icon-search" style="margin-bottom: 20px" />
</div>
<div class="head-container container_main">
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" />
</div>
</el-col>
</pane>
<!--用户数据-->
<pane size="84">
<el-col>

<el-form-item label="文件格式" prop="fileType">
<el-select v-model="queryParams.fileType" placeholder="请选择文件格式" clearable>
<el-option v-for="dict in dict.type.file_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="坐标系" prop="coordinateSystem">
<el-select v-model="queryParams.coordinateSystem" placeholder="请选择坐标系" clearable>
<el-option v-for="dict in dict.type.coordinate_system" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="taskStatus">
<el-select v-model="queryParams.taskStatus" placeholder="请选择任务状态" clearable>
<el-option v-for="dict in dict.type.task_status" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">

<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['business:export:add']">新增</el-button>
</el-col>
<!--
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['business:export:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['business:export:remove']">删除</el-button>
</el-col>
-->
<el-form-item label="文件格式" prop="fileType">
<el-select v-model="queryParams.fileType" placeholder="请选择文件格式" clearable>
<el-option v-for="dict in dict.type.file_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="坐标系" prop="coordinateSystem">
<el-select v-model="queryParams.coordinateSystem" placeholder="请选择坐标系" clearable>
<el-option v-for="dict in dict.type.coordinate_system" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="taskStatus">
<el-select v-model="queryParams.taskStatus" placeholder="请选择任务状态" clearable>
<el-option v-for="dict in dict.type.task_status" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>

<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['business:export:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['business:export:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-printer" size="mini" @click="handlePrint()" v-hasPermi="['business:export:print']">打印</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['business:export:add']">新增</el-button>
</el-col>
<!--
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['business:export:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['business:export:remove']">删除</el-button>
</el-col>
-->

<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['business:export:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['business:export:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-printer" size="mini" @click="handlePrint()" v-hasPermi="['business:export:print']">打印</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>

<!-- 数据列表 列属性 min-width="60" show-overflow-tooltip @selection-change="handleSelectionChange" -->
<el-table v-loading="loading" :data="exportList" border>
<!--<el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="id" align="center" prop="id" min-width="60"/>
<el-table-column label="行政区划名称" align="center" prop="deptName" min-width="120"/>
<el-table-column label="行政区划代码" align="center" prop="orgCode" min-width="150"/>
<el-table-column label="文件格式" align="center" prop="fileType">
<template slot-scope="scope">
<dict-tag :options="dict.type.file_type" :value="scope.row.fileType"/>
</template>
</el-table-column>
<el-table-column label="坐标系" align="center" prop="coordinateSystem">
<template slot-scope="scope">
<dict-tag :options="dict.type.coordinate_system" :value="scope.row.coordinateSystem"/>
</template>
</el-table-column>
<el-table-column label="文件路径" align="center" prop="fileUrl" min-width="100" show-overflow-tooltip/>
<el-table-column label="任务状态" align="center" prop="taskStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.task_status" :value="scope.row.taskStatus"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="300">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleLook(scope.row)" v-hasPermi="['business:export:query']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:export:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-video-play" @click="handleDo(scope.row)" v-hasPermi="['business:export:do']" v-if="scope.row.taskStatus == '1'">执行</el-button>
<el-button size="mini" type="text" icon="el-icon-download" @click="handleDown(scope.row)" v-hasPermi="['business:export:down']" v-if="scope.row.taskStatus == '3'">下载</el-button>
<!-- 数据列表 列属性 min-width="60" show-overflow-tooltip @selection-change="handleSelectionChange" -->
<el-table v-loading="loading" :data="exportList" border>
<!--<el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="id" align="center" prop="id" min-width="60"/>
<el-table-column label="行政区划名称" align="center" prop="deptName" min-width="120"/>
<el-table-column label="行政区划代码" align="center" prop="orgCode" min-width="150"/>
<el-table-column label="文件格式" align="center" prop="fileType">
<template slot-scope="scope">
<dict-tag :options="dict.type.file_type" :value="scope.row.fileType"/>
</template>
</el-table-column>
<el-table-column label="坐标系" align="center" prop="coordinateSystem">
<template slot-scope="scope">
<dict-tag :options="dict.type.coordinate_system" :value="scope.row.coordinateSystem"/>
</template>
</el-table-column>
<el-table-column label="文件路径" align="center" prop="fileUrl" min-width="100" show-overflow-tooltip/>
<el-table-column label="任务状态" align="center" prop="taskStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.task_status" :value="scope.row.taskStatus"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="300">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleLook(scope.row)" v-hasPermi="['business:export:query']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:export:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-video-play" @click="handleDo(scope.row)" v-hasPermi="['business:export:do']" v-if="scope.row.taskStatus == '1'">执行</el-button>
<el-button size="mini" type="text" icon="el-icon-download" @click="handleDown(scope.row)" v-hasPermi="['business:export:down']" v-if="scope.row.taskStatus == '3'">下载</el-button>

<el-dropdown size="mini" v-hasPermi="['business:export:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown" style="padding: 5px">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:export:remove']">删除 </el-button>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<el-dropdown size="mini" v-hasPermi="['business:export:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown" style="padding: 5px">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:export:remove']">删除 </el-button>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>

<!-- 分页插件 -->
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
</el-col>
</pane>
</splitpanes>
</el-row>

<!-- 分页插件 -->
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>

<!-- 导入EXCEL组件 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
@@ -127,15 +149,15 @@
</el-dialog>

<!-- 添加或修改导出任务对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="行政区划id" prop="deptId">
<el-input-number v-model="form.deptId" placeholder="请输入行政区划id" controls-position="right" />
</el-form-item>
<el-form-item label="行政区划名称" prop="deptName">
<el-form-item label="区划名称" prop="deptName">
<el-input v-model="form.deptName" placeholder="请输入行政区划名称" show-word-limit :maxlength="30"/>
</el-form-item>
<el-form-item label="行政区划代码" prop="orgCode">
<el-form-item label="区划代码" prop="orgCode">
<el-input v-model="form.orgCode" placeholder="请输入行政区划代码" show-word-limit :maxlength="20"/>
</el-form-item>
<el-form-item label="文件格式" prop="fileType">
@@ -158,11 +180,18 @@
</template>

<script>
import { listExport, getExport, delExport, addExport, updateExport, printExport } from "@/api/business/export"
import { listExport, getExport, getExportDetail, delExport, addExport, updateExport, printExport } from "@/api/business/export"
import { getToken } from "@/utils/auth"
import Treeselect from "@riophae/vue-treeselect";
import { Splitpanes, Pane } from "splitpanes"
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
import "splitpanes/dist/splitpanes.css"
import { deptTreeSelect } from "@/api/system/user"

export default {
name: "Export",
dicts: ['task_status', 'file_type', 'coordinate_system'],
components: { Treeselect, Splitpanes, Pane },
data() {
return {
// 遮罩层
@@ -193,6 +222,16 @@ export default {
viewOpen: false,
// 项目路径
baseRoutingUrl: process.env.VUE_APP_BASE_API,
// 所有部门树选项
deptOptions: undefined,
// 过滤掉已禁用部门树选项
enabledDeptOptions: undefined,
// 部门名称
deptName: undefined,
defaultProps: {
children: "children",
label: "label"
},
// 查询参数
queryParams: {
pageNum: 1,
@@ -251,7 +290,14 @@ export default {

}
},
watch: {
// 根据名称筛选部门树
deptName(val) {
this.$refs.tree.filter(val)
}
},
created() {
this.getDeptTree()
this.getList()
},
methods: {
@@ -305,6 +351,7 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.form.deptId = this.queryParams.deptId;
this.open = true
this.title = "添加导出任务"
},
@@ -321,7 +368,7 @@ export default {
/** 查看按钮操作 */
handleLook(row) {
const id = row.id || this.ids
getExport(id).then(response => {
getExportDetail(id).then(response => {
this.form = response.data;
this.viewOpen = true;
this.title = "查看导出任务";
@@ -458,8 +505,42 @@ export default {
submitFileForm() {
this.$refs.upload.submit()
},

/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then(response => {
this.deptOptions = response.data
this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
})
},
// 过滤禁用的部门
filterDisabledDept(deptList) {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = this.filterDisabledDept(dept.children)
}
return true
})
},
// 筛选节点
filterNode(value, data) {
if (!value) return true
return data.label.indexOf(value) !== -1
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.deptId = data.id
this.handleQuery()
},

}
}
</script>
<style scoped type="scss">
.container_main{
height: 75vh;
overflow-y: scroll;
}
</style>

+ 187
- 104
src/views/business/import/index.vue View File

@@ -1,108 +1,130 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-row :gutter="20">
<splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme">
<!--部门数据-->
<pane size="16">
<el-col>
<div class="head-container">
<el-input v-model="deptName" placeholder="请输入区划名称" clearable size="small" prefix-icon="el-icon-search" style="margin-bottom: 20px" />
</div>
<div class="head-container container_main">
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false" :filter-node-method="filterNode" ref="tree" node-key="id" default-expand-all highlight-current @node-click="handleNodeClick" />
</div>
</el-col>
</pane>
<!--用户数据-->
<pane size="84">
<el-col>

<el-form-item label="文件格式" prop="fileType">
<el-select v-model="queryParams.fileType" placeholder="请选择文件格式" clearable>
<el-option v-for="dict in dict.type.file_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="导入方式" prop="importType">
<el-select v-model="queryParams.importType" placeholder="请选择导入方式" clearable>
<el-option v-for="dict in dict.type.import_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="坐标系" prop="coordinateSystem">
<el-select v-model="queryParams.coordinateSystem" placeholder="请选择坐标系" clearable>
<el-option v-for="dict in dict.type.coordinate_system" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="taskStatus">
<el-select v-model="queryParams.taskStatus" placeholder="请选择任务状态" clearable>
<el-option v-for="dict in dict.type.task_status" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">

<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['business:import:add']">新增</el-button>
</el-col>
<!--
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['business:import:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['business:import:remove']">删除</el-button>
</el-col>
-->
<el-form-item label="文件格式" prop="fileType">
<el-select v-model="queryParams.fileType" placeholder="请选择文件格式" clearable>
<el-option v-for="dict in dict.type.file_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="导入方式" prop="importType">
<el-select v-model="queryParams.importType" placeholder="请选择导入方式" clearable>
<el-option v-for="dict in dict.type.import_type" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="坐标系" prop="coordinateSystem">
<el-select v-model="queryParams.coordinateSystem" placeholder="请选择坐标系" clearable>
<el-option v-for="dict in dict.type.coordinate_system" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item label="任务状态" prop="taskStatus">
<el-select v-model="queryParams.taskStatus" placeholder="请选择任务状态" clearable>
<el-option v-for="dict in dict.type.task_status" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>

<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['business:import:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['business:import:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-printer" size="mini" @click="handlePrint()" v-hasPermi="['business:import:print']">打印</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['business:import:add']">新增</el-button>
</el-col>
<!--
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['business:import:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['business:import:remove']">删除</el-button>
</el-col>
-->

<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['business:import:import']">导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['business:import:export']">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="info" plain icon="el-icon-printer" size="mini" @click="handlePrint()" v-hasPermi="['business:import:print']">打印</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>

<!-- 数据列表 列属性 min-width="60" show-overflow-tooltip @selection-change="handleSelectionChange" -->
<el-table v-loading="loading" :data="importList" border>
<!--<el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="id" align="center" prop="id" min-width="60"/>
<el-table-column label="行政区划名称" align="center" prop="deptName" min-width="120"/>
<el-table-column label="行政区划代码" align="center" prop="orgCode" min-width="150"/>
<el-table-column label="文件格式" align="center" prop="fileType">
<template slot-scope="scope">
<dict-tag :options="dict.type.file_type" :value="scope.row.fileType"/>
</template>
</el-table-column>
<el-table-column label="导入方式" align="center" prop="importType">
<template slot-scope="scope">
<dict-tag :options="dict.type.import_type" :value="scope.row.importType"/>
</template>
</el-table-column>
<el-table-column label="坐标系" align="center" prop="coordinateSystem">
<template slot-scope="scope">
<dict-tag :options="dict.type.coordinate_system" :value="scope.row.coordinateSystem"/>
</template>
</el-table-column>
<!--<el-table-column label="文件路径" align="center" prop="fileUrl" min-width="300" show-overflow-tooltip/>-->
<el-table-column label="文件路径" header-align="center" align="left" prop="fileUrl" >
<template slot-scope="scope">
<div v-if="!!scope.row.fileUrl"><el-tooltip effect="light" :content="item.substr(item.lastIndexOf('/') + 1)" placement="bottom" v-for="(item, index) in scope.row.fileUrl.split(',')" :key="index"><a :href="baseRoutingUrll + item" target="_blank" style="height: 32px; width: 32px; margin: 2px; display: inline-block; text-align: center;"><img :src="getFileIcon(item)" style="height: 100%;"/></a></el-tooltip></div>
</template>
</el-table-column>
<el-table-column label="任务状态" align="center" prop="taskStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.task_status" :value="scope.row.taskStatus"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="300">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleLook(scope.row)" v-hasPermi="['business:import:query']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:import:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-video-play" @click="handleDo(scope.row)" v-hasPermi="['business:import:do']" v-if="scope.row.taskStatus == '1'">执行</el-button>
<!-- 数据列表 列属性 min-width="60" show-overflow-tooltip @selection-change="handleSelectionChange" -->
<el-table v-loading="loading" :data="importList" border>
<!--<el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="id" align="center" prop="id" min-width="60"/>
<el-table-column label="行政区划名称" align="center" prop="deptName" min-width="120"/>
<el-table-column label="行政区划代码" align="center" prop="orgCode" min-width="150"/>
<el-table-column label="文件格式" align="center" prop="fileType">
<template slot-scope="scope">
<dict-tag :options="dict.type.file_type" :value="scope.row.fileType"/>
</template>
</el-table-column>
<el-table-column label="导入方式" align="center" prop="importType">
<template slot-scope="scope">
<dict-tag :options="dict.type.import_type" :value="scope.row.importType"/>
</template>
</el-table-column>
<el-table-column label="坐标系" align="center" prop="coordinateSystem">
<template slot-scope="scope">
<dict-tag :options="dict.type.coordinate_system" :value="scope.row.coordinateSystem"/>
</template>
</el-table-column>
<!--<el-table-column label="文件路径" align="center" prop="fileUrl" min-width="300" show-overflow-tooltip/>-->
<el-table-column label="文件路径" header-align="center" align="left" prop="fileUrl" >
<template slot-scope="scope">
<div v-if="!!scope.row.fileUrl"><el-tooltip effect="light" :content="item.substr(item.lastIndexOf('/') + 1)" placement="bottom" v-for="(item, index) in scope.row.fileUrl.split(',')" :key="index"><a :href="baseRoutingUrll + item" target="_blank" style="height: 32px; width: 32px; margin: 2px; display: inline-block; text-align: center;"><img :src="getFileIcon(item)" style="height: 100%;"/></a></el-tooltip></div>
</template>
</el-table-column>
<el-table-column label="任务状态" align="center" prop="taskStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.task_status" :value="scope.row.taskStatus"/>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="300">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleLook(scope.row)" v-hasPermi="['business:import:query']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:import:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-video-play" @click="handleDo(scope.row)" v-hasPermi="['business:import:do']" v-if="scope.row.taskStatus == '1'">执行</el-button>

<el-dropdown size="mini" v-hasPermi="['business:import:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown" style="padding: 5px">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:import:remove']">删除</el-button>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<el-dropdown size="mini" v-hasPermi="['business:import:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown" style="padding: 5px">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:import:remove']">删除</el-button>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>

<!-- 分页插件 -->
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
<!-- 分页插件 -->
<pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>

</el-col>
</pane>
</splitpanes>
</el-row>

<!-- 导入EXCEL组件 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
@@ -142,15 +164,15 @@
</el-dialog>

<!-- 添加或修改导入任务对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="行政区划id" prop="deptId">
<el-input-number v-model="form.deptId" placeholder="请输入行政区划id" controls-position="right" />
</el-form-item>
<el-form-item label="行政区划名称" prop="deptName">
<el-form-item label="区划名称" prop="deptName">
<el-input v-model="form.deptName" placeholder="请输入行政区划名称" show-word-limit :maxlength="30"/>
</el-form-item>
<el-form-item label="行政区划代码" prop="orgCode">
<el-form-item label="区划代码" prop="orgCode">
<el-input v-model="form.orgCode" placeholder="请输入行政区划代码" show-word-limit :maxlength="20"/>
</el-form-item>
<el-form-item label="文件格式" prop="fileType">
@@ -182,11 +204,18 @@
</template>

<script>
import { listImport, getImport, delImport, addImport, updateImport, printImport } from "@/api/business/import"
import { listImport, getExport, getExportDetail, delImport, addImport, updateImport, printImport } from "@/api/business/import"
import { getToken } from "@/utils/auth"
import Treeselect from "@riophae/vue-treeselect";
import {Pane, Splitpanes} from "splitpanes";
import "@riophae/vue-treeselect/dist/vue-treeselect.css"
import "splitpanes/dist/splitpanes.css"
import { deptTreeSelect } from "@/api/system/user"

export default {
name: "Import",
dicts: ['task_status', 'file_type', 'coordinate_system', 'import_type'],
components: { Treeselect, Splitpanes, Pane },
data() {
return {
// 遮罩层
@@ -216,7 +245,17 @@ export default {
// 对话框显示只读的详情
viewOpen: false,
// 项目路径
baseRoutingUrl: process.env.VUE_APP_BASE_API,
baseRoutingUrll: process.env.VUE_APP_BASE_API,
// 所有部门树选项
deptOptions: undefined,
// 过滤掉已禁用部门树选项
enabledDeptOptions: undefined,
// 部门名称
deptName: undefined,
defaultProps: {
children: "children",
label: "label"
},
// 查询参数
queryParams: {
pageNum: 1,
@@ -282,7 +321,14 @@ export default {

}
},
watch: {
// 根据名称筛选部门树
deptName(val) {
this.$refs.tree.filter(val)
}
},
created() {
this.getDeptTree()
this.getList()
},
methods: {
@@ -337,6 +383,7 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.form.deptId = this.queryParams.deptId;
this.open = true
this.title = "添加导入任务"
},
@@ -353,7 +400,7 @@ export default {
/** 查看按钮操作 */
handleLook(row) {
const id = row.id || this.ids
getImport(id).then(response => {
getImportDetail(id).then(response => {
this.form = response.data;
this.viewOpen = true;
this.title = "查看导入任务";
@@ -507,7 +554,43 @@ export default {
return require('@/assets/images/icon_rest.jpg');
}
},
/** 查询部门下拉树结构 */
getDeptTree() {
deptTreeSelect().then(response => {
this.deptOptions = response.data
this.enabledDeptOptions = this.filterDisabledDept(JSON.parse(JSON.stringify(response.data)))
})
},
// 过滤禁用的部门
filterDisabledDept(deptList) {
return deptList.filter(dept => {
if (dept.disabled) {
return false
}
if (dept.children && dept.children.length) {
dept.children = this.filterDisabledDept(dept.children)
}
return true
})
},
// 筛选节点
filterNode(value, data) {
if (!value) return true
return data.label.indexOf(value) !== -1
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.deptId = data.id
this.form.deptName = data.id
this.handleQuery()
},

}
}
</script>
<style scoped type="scss">
.container_main{
height: 75vh;
overflow-y: scroll;
}
</style>

+ 44
- 38
src/views/business/xjqy/index.vue View File

@@ -4,8 +4,11 @@
<el-form-item label="区划代码" prop="XJQYDM">
<el-input v-model="queryParams.XJQYDM" placeholder="请输入区划代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="区划名称" prop="XJQYMC">
<el-input v-model="queryParams.XJQYMC" placeholder="请输入区划名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="级联代码" prop="importCode">
<el-input v-model="queryParams.importCode" placeholder="请输入部门级联代码" clearable @keyup.enter.native="handleQuery"/>
<el-input v-model="queryParams.importCode" placeholder="请输入级联代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -45,12 +48,18 @@
<el-table-column label="区划名称" align="center" prop="XJQYMC" />
<el-table-column label="标识码" align="center" prop="BSM" />
<el-table-column label="要素代码" align="center" prop="YSDM" />
<el-table-column label="部门级联代码" align="center" prop="importCode" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="级联代码" align="center" prop="importCode" />
<el-table-column label="fid" align="center" prop="fid" min-width="60"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="250">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleLook(scope.row)" v-hasPermi="['business:xjqy:query']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:xjqy:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:xjqy:remove']">删除</el-button>
<el-dropdown size="mini" v-hasPermi="['business:xjqy:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown" style="padding: 5px">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:xjqy:remove']">删除</el-button>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@@ -80,12 +89,11 @@
<!-- 查看乡级区域对话框 -->
<el-dialog :title="title" :visible.sync="viewOpen" width="800px" append-to-body>
<el-descriptions id="printDetail" :column="descColumn" border :labelStyle="{width: `${descLabelWidth}%`}" :contentStyle="{width: `${(100 / descColumn) - descLabelWidth}%`}">
<el-descriptions-item label="区划代码">{{ form.XJQYDM }}</el-descriptions-item>
<el-descriptions-item label="区划名称">{{ form.XJQYMC }}</el-descriptions-item>
<el-descriptions-item label="空间矢量">{{ form.theGeom }}</el-descriptions-item>
<el-descriptions-item label="标识码">{{ form.BSM }}</el-descriptions-item>
<el-descriptions-item label="要素代码">{{ form.YSDM }}</el-descriptions-item>
<el-descriptions-item label="fid">{{ form.fid }}</el-descriptions-item>
<el-descriptions-item label="部门级联代码">{{ form.importCode }}</el-descriptions-item>
<el-descriptions-item label="级联代码">{{ form.importCode }}</el-descriptions-item>
</el-descriptions>
<!-- 弹框操作按钮 -->
<div slot="footer" class="dialog-footer">
@@ -95,25 +103,22 @@
</el-dialog>

<!-- 添加或修改乡级区域对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="区划代码" prop="XJQYDM">
<el-input v-model="form.XJQYDM" placeholder="请输入区划代码" show-word-limit :maxlength="9"/>
</el-form-item>
<el-form-item label="区划名称" prop="XJQYMC">
<el-input v-model="form.XJQYMC" placeholder="请输入区划名称" show-word-limit :maxlength="100"/>
</el-form-item>
<el-form-item label="空间矢量" prop="theGeom">
<el-input v-model="form.theGeom" type="textarea" :autosize="{ minRows: 2, maxRows: 3}" :maxlength="100" show-word-limit placeholder="请输入内容" />
</el-form-item>
<el-form-item label="标识码" prop="BSM">
<el-input-number v-model="form.BSM" placeholder="请输入标识码" controls-position="right" />
</el-form-item>
<el-form-item label="要素代码" prop="YSDM">
<el-input v-model="form.YSDM" placeholder="请输入要素代码" show-word-limit :maxlength="6"/>
</el-form-item>
<el-form-item label="fid" prop="fid">
<el-input-number v-model="form.fid" placeholder="请输入fid" controls-position="right" />
</el-form-item>
<el-form-item label="部门级联代码" prop="importCode">
<el-input v-model="form.importCode" placeholder="请输入部门级联代码" show-word-limit :maxlength="20"/>
<el-form-item label="级联代码" prop="importCode">
<el-input v-model="form.importCode" placeholder="请输入级联代码" show-word-limit :maxlength="20"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -125,7 +130,7 @@
</template>

<script>
import { listXjqy, getXjqy, delXjqy, addXjqy, updateXjqy, printXjqy } from "@/api/business/xjqy"
import { listXjqy, getXjqy, getXjqyDetail, delXjqy, addXjqy, updateXjqy, printXjqy } from "@/api/business/xjqy"
import { getToken } from "@/utils/auth"
export default {
name: "Xjqy",
@@ -158,7 +163,7 @@ export default {
// 对话框显示只读的详情
viewOpen: false,
// 项目路径
baseRoutingUrl: process.env.VUE_APP_BASE_API,
baseRoutingUrll: process.env.VUE_APP_BASE_API,
// 查询参数
queryParams: {
pageNum: 1,
@@ -169,21 +174,22 @@ export default {
// 翻译字典
//toTranslateDict: "1",
XJQYDM: null,
importCode: null
XJQYMC: null,
importCode: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
XJQYDM: [
{ required: true, message: "区划代码不能为空", trigger: "blur" }
],
XJQYMC: [
{ required: true, message: "区划名称不能为空", trigger: "blur" }
],
theGeom: [
{ required: true, message: "空间矢量不能为空", trigger: "blur" }
],
importCode: [
{ required: true, message: "部门级联代码不能为空", trigger: "blur" }
]
{ required: true, message: "级联代码不能为空", trigger: "blur" }
],
},
// EXCEL导入
upload: {
@@ -229,11 +235,11 @@ export default {
this.form = {
XJQYDM: null,
XJQYMC: null,
theGeom: null,
BSM: null,
YSDM: null,
fid: null,
importCode: null
theGeom: null,
importCode: null,
fid: null
}
this.resetForm("form")
},
@@ -249,7 +255,7 @@ export default {
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.XJQYDM)
this.ids = selection.map(item => item.fid)
this.single = selection.length!==1
this.multiple = !selection.length
},
@@ -262,8 +268,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const XJQYDM = row.XJQYDM || this.ids
getXjqy(XJQYDM).then(response => {
const fid = row.fid || this.ids
getXjqy(fid).then(response => {
this.form = response.data
this.open = true
this.title = "修改乡级区域"
@@ -271,8 +277,8 @@ export default {
},
/** 查看按钮操作 */
handleLook(row) {
const XJQYDM = row.XJQYDM || this.ids
getXjqy(XJQYDM).then(response => {
const fid = row.fid || this.ids
getXjqyDetail(fid).then(response => {
this.form = response.data;
this.viewOpen = true;
this.title = "查看乡级区域";
@@ -282,7 +288,7 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.XJQYDM != null) {
if (this.form.fid != null) {
updateXjqy(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
@@ -300,9 +306,9 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
const XJQYDMs = row.XJQYDM || this.ids
this.$modal.confirm('是否确认删除乡级区域编号为"' + XJQYDMs + '"的数据项?').then(function() {
return delXjqy(XJQYDMs)
const fids = row.fid || this.ids
this.$modal.confirm('是否确认删除乡级区域编号为"' + fids + '"的数据项?').then(function() {
return delXjqy(fids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
@@ -391,7 +397,7 @@ export default {
/** 下载模板操作 */
importTemplate() {
this.download('business/xjqy/importTemplate', {
}, `xjqy_template.xlsx`)
}, `乡级区域_template.xlsx`)
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {


+ 44
- 38
src/views/business/xjxzq/index.vue View File

@@ -4,8 +4,11 @@
<el-form-item label="区划代码" prop="XZQDM">
<el-input v-model="queryParams.XZQDM" placeholder="请输入区划代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="区划名称" prop="XZQMC">
<el-input v-model="queryParams.XZQMC" placeholder="请输入区划名称" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item label="级联代码" prop="importCode">
<el-input v-model="queryParams.importCode" placeholder="请输入部门级联代码" clearable @keyup.enter.native="handleQuery"/>
<el-input v-model="queryParams.importCode" placeholder="请输入级联代码" clearable @keyup.enter.native="handleQuery"/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -45,12 +48,18 @@
<el-table-column label="区划名称" align="center" prop="XZQMC" />
<el-table-column label="标识码" align="center" prop="BSM" />
<el-table-column label="要素代码" align="center" prop="YSDM" />
<el-table-column label="部门级联代码" align="center" prop="importCode" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="级联代码" align="center" prop="importCode" />
<el-table-column label="fid" align="center" prop="fid" min-width="60"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="250">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleLook(scope.row)" v-hasPermi="['business:xjxzq:query']">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['business:xjxzq:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:xjxzq:remove']">删除</el-button>
<el-dropdown size="mini" v-hasPermi="['business:xjxzq:remove']">
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
<el-dropdown-menu slot="dropdown" style="padding: 5px">
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['business:xjxzq:remove']">删除</el-button>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
@@ -80,12 +89,11 @@
<!-- 查看县级区域对话框 -->
<el-dialog :title="title" :visible.sync="viewOpen" width="800px" append-to-body>
<el-descriptions id="printDetail" :column="descColumn" border :labelStyle="{width: `${descLabelWidth}%`}" :contentStyle="{width: `${(100 / descColumn) - descLabelWidth}%`}">
<el-descriptions-item label="区划代码">{{ form.XZQDM }}</el-descriptions-item>
<el-descriptions-item label="区划名称">{{ form.XZQMC }}</el-descriptions-item>
<el-descriptions-item label="空间矢量">{{ form.theGeom }}</el-descriptions-item>
<el-descriptions-item label="标识码">{{ form.BSM }}</el-descriptions-item>
<el-descriptions-item label="要素代码">{{ form.YSDM }}</el-descriptions-item>
<el-descriptions-item label="fid">{{ form.fid }}</el-descriptions-item>
<el-descriptions-item label="部门级联代码">{{ form.importCode }}</el-descriptions-item>
<el-descriptions-item label="级联代码">{{ form.importCode }}</el-descriptions-item>
</el-descriptions>
<!-- 弹框操作按钮 -->
<div slot="footer" class="dialog-footer">
@@ -95,25 +103,22 @@
</el-dialog>

<!-- 添加或修改县级区域对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="区划代码" prop="XZQDM">
<el-input v-model="form.XZQDM" placeholder="请输入区划代码" show-word-limit :maxlength="6"/>
</el-form-item>
<el-form-item label="区划名称" prop="XZQMC">
<el-input v-model="form.XZQMC" placeholder="请输入区划名称" show-word-limit :maxlength="100"/>
</el-form-item>
<el-form-item label="空间矢量" prop="theGeom">
<el-input v-model="form.theGeom" type="textarea" :autosize="{ minRows: 2, maxRows: 3}" :maxlength="100" show-word-limit placeholder="请输入内容" />
</el-form-item>
<el-form-item label="标识码" prop="BSM">
<el-input-number v-model="form.BSM" placeholder="请输入标识码" controls-position="right" />
</el-form-item>
<el-form-item label="要素代码" prop="YSDM">
<el-input v-model="form.YSDM" placeholder="请输入要素代码" show-word-limit :maxlength="6"/>
</el-form-item>
<el-form-item label="fid" prop="fid">
<el-input-number v-model="form.fid" placeholder="请输入fid" controls-position="right" />
</el-form-item>
<el-form-item label="部门级联代码" prop="importCode">
<el-input v-model="form.importCode" placeholder="请输入部门级联代码" show-word-limit :maxlength="20"/>
<el-form-item label="级联代码" prop="importCode">
<el-input v-model="form.importCode" placeholder="请输入级联代码" show-word-limit :maxlength="20"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -125,7 +130,7 @@
</template>

<script>
import { listXjxzq, getXjxzq, delXjxzq, addXjxzq, updateXjxzq, printXjxzq } from "@/api/business/xjxzq"
import { listXjxzq, getXjxzq, getXjxzqDetail, delXjxzq, addXjxzq, updateXjxzq, printXjxzq } from "@/api/business/xjxzq"
import { getToken } from "@/utils/auth"
export default {
name: "Xjxzq",
@@ -158,7 +163,7 @@ export default {
// 对话框显示只读的详情
viewOpen: false,
// 项目路径
baseRoutingUrl: process.env.VUE_APP_BASE_API,
baseRoutingUrll: process.env.VUE_APP_BASE_API,
// 查询参数
queryParams: {
pageNum: 1,
@@ -169,21 +174,22 @@ export default {
// 翻译字典
//toTranslateDict: "1",
XZQDM: null,
importCode: null
XZQMC: null,
importCode: null,
},
// 表单参数
form: {},
// 表单校验
rules: {
XZQDM: [
{ required: true, message: "区划代码不能为空", trigger: "blur" }
],
XZQMC: [
{ required: true, message: "区划名称不能为空", trigger: "blur" }
],
theGeom: [
{ required: true, message: "空间矢量不能为空", trigger: "blur" }
],
importCode: [
{ required: true, message: "部门级联代码不能为空", trigger: "blur" }
]
{ required: true, message: "级联代码不能为空", trigger: "blur" }
],
},
// EXCEL导入
upload: {
@@ -229,11 +235,11 @@ export default {
this.form = {
XZQDM: null,
XZQMC: null,
theGeom: null,
BSM: null,
YSDM: null,
fid: null,
importCode: null
theGeom: null,
importCode: null,
fid: null
}
this.resetForm("form")
},
@@ -249,7 +255,7 @@ export default {
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.XZQDM)
this.ids = selection.map(item => item.fid)
this.single = selection.length!==1
this.multiple = !selection.length
},
@@ -262,8 +268,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset()
const XZQDM = row.XZQDM || this.ids
getXjxzq(XZQDM).then(response => {
const fid = row.fid || this.ids
getXjxzq(fid).then(response => {
this.form = response.data
this.open = true
this.title = "修改县级区域"
@@ -271,8 +277,8 @@ export default {
},
/** 查看按钮操作 */
handleLook(row) {
const XZQDM = row.XZQDM || this.ids
getXjxzq(XZQDM).then(response => {
const fid = row.fid || this.ids
getXjxzqDetail(fid).then(response => {
this.form = response.data;
this.viewOpen = true;
this.title = "查看县级区域";
@@ -282,7 +288,7 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.XZQDM != null) {
if (this.form.fid != null) {
updateXjxzq(this.form).then(response => {
this.$modal.msgSuccess("修改成功")
this.open = false
@@ -300,9 +306,9 @@ export default {
},
/** 删除按钮操作 */
handleDelete(row) {
const XZQDMs = row.XZQDM || this.ids
this.$modal.confirm('是否确认删除县级区域编号为"' + XZQDMs + '"的数据项?').then(function() {
return delXjxzq(XZQDMs)
const fids = row.fid || this.ids
this.$modal.confirm('是否确认删除县级区域编号为"' + fids + '"的数据项?').then(function() {
return delXjxzq(fids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
@@ -391,7 +397,7 @@ export default {
/** 下载模板操作 */
importTemplate() {
this.download('business/xjxzq/importTemplate', {
}, `xjxzq_template.xlsx`)
}, `县级区域_template.xlsx`)
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {


Loading…
Cancel
Save