Commit 588e6b44 authored by mengmeng's avatar mengmeng

Merge branch 'fwldev' into 'master'

modify

See merge request !1
parents 340b61c4 0026c269
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
...@@ -2819,6 +2819,12 @@ ...@@ -2819,6 +2819,12 @@
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
"integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg="
}, },
"asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
"optional": true
},
"asn1": { "asn1": {
"version": "0.2.4", "version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
...@@ -5810,6 +5816,22 @@ ...@@ -5810,6 +5816,22 @@
"safer-buffer": "^2.1.0" "safer-buffer": "^2.1.0"
} }
}, },
"echarts": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-5.1.2.tgz",
"integrity": "sha512-okUhO4sw22vwZp+rTPNjd/bvTdpug4K4sHNHyrV8NdAncIX9/AarlolFqtJCAYKGFYhUBNjIWu1EznFrSWTFxg==",
"requires": {
"tslib": "2.0.3",
"zrender": "5.1.1"
},
"dependencies": {
"tslib": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
}
}
},
"ee-first": { "ee-first": {
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
...@@ -5956,7 +5978,6 @@ ...@@ -5956,7 +5978,6 @@
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
"integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
"dev": true,
"requires": { "requires": {
"prr": "~1.0.1" "prr": "~1.0.1"
} }
...@@ -10308,6 +10329,63 @@ ...@@ -10308,6 +10329,63 @@
"invert-kv": "^1.0.0" "invert-kv": "^1.0.0"
} }
}, },
"less": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/less/-/less-3.0.4.tgz",
"integrity": "sha512-q3SyEnPKbk9zh4l36PGeW2fgynKu+FpbhiUNx/yaiBUQ3V0CbACCgb9FzYWcRgI2DJlP6eI4jc8XPrCTi55YcQ==",
"requires": {
"errno": "^0.1.1",
"graceful-fs": "^4.1.2",
"image-size": "~0.5.0",
"mime": "^1.4.1",
"mkdirp": "^0.5.0",
"promise": "^7.1.1",
"request": "^2.83.0",
"source-map": "~0.6.0"
},
"dependencies": {
"graceful-fs": {
"version": "4.2.6",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
"integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==",
"optional": true
},
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"optional": true
},
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"optional": true
}
}
},
"less-loader": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz",
"integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==",
"requires": {
"clone": "^2.1.1",
"loader-utils": "^1.1.0",
"pify": "^4.0.1"
},
"dependencies": {
"clone": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
},
"pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
}
}
},
"levn": { "levn": {
"version": "0.3.0", "version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
...@@ -14670,6 +14748,15 @@ ...@@ -14670,6 +14748,15 @@
"dev": true, "dev": true,
"optional": true "optional": true
}, },
"promise": {
"version": "7.3.1",
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"optional": true,
"requires": {
"asap": "~2.0.3"
}
},
"promise-inflight": { "promise-inflight": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
...@@ -14689,8 +14776,7 @@ ...@@ -14689,8 +14776,7 @@
"prr": { "prr": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
"integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
"dev": true
}, },
"pseudomap": { "pseudomap": {
"version": "1.0.2", "version": "1.0.2",
...@@ -18636,6 +18722,21 @@ ...@@ -18636,6 +18722,21 @@
"dev": true "dev": true
} }
} }
},
"zrender": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/zrender/-/zrender-5.1.1.tgz",
"integrity": "sha512-oeWlmUZPQdS9f5hK4pV21tHPqA3wgQ7CkKkw7l0CCBgWlJ/FP+lRgLFtUBW6yam4JX8y9CdHJo1o587VVrbcoQ==",
"requires": {
"tslib": "2.0.3"
},
"dependencies": {
"tslib": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
}
}
} }
} }
} }
...@@ -15,8 +15,9 @@ ...@@ -15,8 +15,9 @@
}, },
"dependencies": { "dependencies": {
"axios": "^0.19.0", "axios": "^0.19.0",
"babel-plugin-component": "^1.1.1",
"babel-eslint": "^8.0.1", "babel-eslint": "^8.0.1",
"babel-plugin-component": "^1.1.1",
"echarts": "^5.1.2",
"element-theme": "^2.0.1", "element-theme": "^2.0.1",
"element-ui": "^2.11.1", "element-ui": "^2.11.1",
"gulp-autoprefixer": "^6.1.0", "gulp-autoprefixer": "^6.1.0",
...@@ -25,6 +26,8 @@ ...@@ -25,6 +26,8 @@
"gulp-rename": "^1.4.0", "gulp-rename": "^1.4.0",
"gulp-sass": "^4.0.2", "gulp-sass": "^4.0.2",
"js-cookie": "^2.2.0", "js-cookie": "^2.2.0",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"lodash": "^4.17.15", "lodash": "^4.17.15",
"node-sass": "^4.12.0", "node-sass": "^4.12.0",
"qs": "^6.7.0", "qs": "^6.7.0",
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta http-equiv="X-UA-Compatible" content="ie=edge">
...@@ -9,7 +10,8 @@ ...@@ -9,7 +10,8 @@
window.SITE_CONFIG = {}; window.SITE_CONFIG = {};
window.SITE_CONFIG['version'] = 'v1.0.0'; window.SITE_CONFIG['version'] = 'v1.0.0';
window.SITE_CONFIG['nodeEnv'] = '<%= process.env.VUE_APP_NODE_ENV %>'; window.SITE_CONFIG['nodeEnv'] = '<%= process.env.VUE_APP_NODE_ENV %>';
window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin'; // api请求地址 ///window.SITE_CONFIG['apiURL'] = 'http://192.168.10.129:8080/hmit-admin';
window.SITE_CONFIG['apiURL'] = 'http://119.3.50.187:8011/hmit-admin'; // api请求地址
window.SITE_CONFIG['storeState'] = {}; // vuex本地储存初始化状态(用于不刷新页面的情况下,也能重置初始化项目中所有状态) window.SITE_CONFIG['storeState'] = {}; // vuex本地储存初始化状态(用于不刷新页面的情况下,也能重置初始化项目中所有状态)
window.SITE_CONFIG['contentTabDefault'] = { // 内容标签页默认属性对象 window.SITE_CONFIG['contentTabDefault'] = { // 内容标签页默认属性对象
'name': '', // 名称, 由 this.$route.name 自动赋值(默认,名称 === 路由名称 === 路由路径) 'name': '', // 名称, 由 this.$route.name 自动赋值(默认,名称 === 路由名称 === 路由路径)
...@@ -28,23 +30,25 @@ ...@@ -28,23 +30,25 @@
</script> </script>
<!-- 开发环境 --> <!-- 开发环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %> <% if (process.env.VUE_APP_NODE_ENV==='dev' ) { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script>
<% } %>
<!-- 集成测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:sit') { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script>
<% } %>
<!-- 验收测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod:uat') { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script> <script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script>
<% } %> <% } %>
<!-- 生产环境 --> <!-- 集成测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV === 'prod') { %> <% if (process.env.VUE_APP_NODE_ENV==='prod:sit' ) { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script> <script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script>
<% } %> <% } %>
<!-- 验收测试环境 -->
<% if (process.env.VUE_APP_NODE_ENV==='prod:uat' ) { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script>
<% } %>
<!-- 生产环境 -->
<% if (process.env.VUE_APP_NODE_ENV==='prod' ) { %>
<script>window.SITE_CONFIG['apiURL'] = 'http://localhost:8080/hmit-admin';</script>
<% } %>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>
</body> </body>
</html>
</html>
\ No newline at end of file
<template>
<div class="echarts">
<div
ref="chartpie"
:style="'width:'+width+';height:'+height"
></div>
</div>
</template>
<script>
export default {
name: "echarts",
components: {},
props: {
options: Object,
height: String,
width: String,
// bage: String,
},
data() {
return {};
},
methods: {
getEchart() {
const chart = this.$refs.chartpie;
if (chart) {
const myChart = this.$echarts.init(chart);
//const myChart = echarts.init(chart, null, { renderer: "svg" });
const option = this.options;
myChart.setOption(option);
window.addEventListener("resize", function () {
myChart.resize();
});
}
this.$on("hook:destroyed", () => {
window.removeEventListener("resize", function () {
myChart.resize();
});
});
},
},
created() {},
mounted() {
this.getEchart();
},
};
</script>
<style lang="less" scoped>
.echarts {
width: 100%;
}
</style>
\ No newline at end of file
...@@ -3,8 +3,8 @@ const t = {} ...@@ -3,8 +3,8 @@ const t = {}
t.loading = '加载中...' t.loading = '加载中...'
t.brand = {} t.brand = {}
t.brand.lg = '汇民综合管理系统' t.brand.lg = '奉化区人民检察院满意度评价系统'
t.brand.mini = '汇民' t.brand.mini = '阳光码'
t.add = '新增' t.add = '新增'
t.delete = '删除' t.delete = '删除'
......
...@@ -17,7 +17,10 @@ import renProcessDetail from '@/components/ren-process-detail' ...@@ -17,7 +17,10 @@ import renProcessDetail from '@/components/ren-process-detail'
import renDeptTree from '@/components/ren-dept-tree' import renDeptTree from '@/components/ren-dept-tree'
import renRegionTree from '@/components/ren-region-tree' import renRegionTree from '@/components/ren-region-tree'
import { hasPermission, getDictLabel } from '@/utils' import { hasPermission, getDictLabel } from '@/utils'
import cloneDeep from 'lodash/cloneDeep' import cloneDeep from 'lodash/cloneDeep'
import * as echarts from 'echarts';
Vue.config.productionTip = false Vue.config.productionTip = false
...@@ -39,7 +42,7 @@ Vue.use(renProcessDetail) ...@@ -39,7 +42,7 @@ Vue.use(renProcessDetail)
Vue.prototype.$http = http Vue.prototype.$http = http
Vue.prototype.$hasPermission = hasPermission Vue.prototype.$hasPermission = hasPermission
Vue.prototype.$getDictLabel = getDictLabel Vue.prototype.$getDictLabel = getDictLabel
Vue.prototype.$echarts = echarts
// 保存整站vuex本地储存初始状态 // 保存整站vuex本地储存初始状态
window.SITE_CONFIG['storeState'] = cloneDeep(store.state) window.SITE_CONFIG['storeState'] = cloneDeep(store.state)
......
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import qs from 'qs' import qs from 'qs'
export default { export default {
data () { data() {
/* eslint-disable */ /* eslint-disable */
return { return {
// 设置属性 // 设置属性
...@@ -29,19 +29,19 @@ export default { ...@@ -29,19 +29,19 @@ export default {
} }
/* eslint-enable */ /* eslint-enable */
}, },
created () { created() {
if (this.mixinViewModuleOptions.createdIsNeed) { if (this.mixinViewModuleOptions.createdIsNeed) {
this.query() this.query()
} }
}, },
activated () { activated() {
if (this.mixinViewModuleOptions.activatedIsNeed) { if (this.mixinViewModuleOptions.activatedIsNeed) {
this.query() this.query()
} }
}, },
methods: { methods: {
// 获取数据列表 // 获取数据列表
query () { query() {
this.dataListLoading = true this.dataListLoading = true
this.$http.get( this.$http.get(
this.mixinViewModuleOptions.getDataListURL, this.mixinViewModuleOptions.getDataListURL,
...@@ -68,11 +68,11 @@ export default { ...@@ -68,11 +68,11 @@ export default {
}) })
}, },
// 多选 // 多选
dataListSelectionChangeHandle (val) { dataListSelectionChangeHandle(val) {
this.dataListSelections = val this.dataListSelections = val
}, },
// 排序 // 排序
dataListSortChangeHandle (data) { dataListSortChangeHandle(data) {
if (!data.order || !data.prop) { if (!data.order || !data.prop) {
this.order = '' this.order = ''
this.orderField = '' this.orderField = ''
...@@ -83,13 +83,13 @@ export default { ...@@ -83,13 +83,13 @@ export default {
this.query() this.query()
}, },
// 分页, 每页条数 // 分页, 每页条数
pageSizeChangeHandle (val) { pageSizeChangeHandle(val) {
this.page = 1 this.page = 1
this.limit = val this.limit = val
this.query() this.query()
}, },
// 分页, 当前页 // 分页, 当前页
pageCurrentChangeHandle (val) { pageCurrentChangeHandle(val) {
this.page = val this.page = val
this.query() this.query()
}, },
...@@ -98,7 +98,7 @@ export default { ...@@ -98,7 +98,7 @@ export default {
this.query() this.query()
}, },
// 新增 / 修改 // 新增 / 修改
addOrUpdateHandle (id) { addOrUpdateHandle(id) {
this.addOrUpdateVisible = true this.addOrUpdateVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.addOrUpdate.dataForm.id = id this.$refs.addOrUpdate.dataForm.id = id
...@@ -106,7 +106,7 @@ export default { ...@@ -106,7 +106,7 @@ export default {
}) })
}, },
// 删除 // 删除
deleteHandle (id) { deleteHandle(id) {
if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) { if (this.mixinViewModuleOptions.deleteIsBatch && !id && this.dataListSelections.length <= 0) {
return this.$message({ return this.$message({
message: this.$t('prompt.deleteBatch'), message: this.$t('prompt.deleteBatch'),
...@@ -114,7 +114,8 @@ export default { ...@@ -114,7 +114,8 @@ export default {
duration: 500 duration: 500
}) })
} }
this.$confirm(this.$t('prompt.info', { 'handle': this.$t('delete') }), this.$t('prompt.title'), { let info = this.$t('prompt.info', { 'handle': this.$t('delete') })
this.$confirm(info, this.$t('prompt.title'), {
confirmButtonText: this.$t('confirm'), confirmButtonText: this.$t('confirm'),
cancelButtonText: this.$t('cancel'), cancelButtonText: this.$t('cancel'),
type: 'warning' type: 'warning'
...@@ -136,11 +137,11 @@ export default { ...@@ -136,11 +137,11 @@ export default {
this.query() this.query()
} }
}) })
}).catch(() => {}) }).catch(() => { })
}).catch(() => {}) }).catch(() => { })
}, },
// 导出 // 导出
exportHandle () { exportHandle() {
var params = qs.stringify({ var params = qs.stringify({
'token': Cookies.get('token'), 'token': Cookies.get('token'),
...this.dataForm ...this.dataForm
......
<template> <template>
<nav class="aui-navbar" :class="`aui-navbar--${$store.state.navbarLayoutType}`"> <nav
<div class="aui-navbar__header"> class="aui-navbar"
<h1 class="aui-navbar__brand" @click="$router.push({ name: 'home' })"> :class="`aui-navbar--${$store.state.navbarLayoutType}`"
<a class="aui-navbar__brand-lg" href="javascript:;">{{ $t('brand.lg') }}</a> >
<a class="aui-navbar__brand-mini" href="javascript:;">{{ $t('brand.mini') }}</a> <div
class="aui-navbar__header"
style="width:460px"
>
<h1
class="aui-navbar__brand"
@click="$router.push({ name: 'home' })"
>
<!-- <a
class="aui-navbar__brand-lg"
href="javascript:;"
>{{ $t('brand.lg') }}</a> -->
<img
src="../assets/img/logo.png"
alt=""
>
<a
class="aui-navbar__brand-mini"
href="javascript:;"
>{{ $t('brand.mini') }}</a>
</h1> </h1>
</div> </div>
<div class="aui-navbar__body"> <div class="aui-navbar__body">
<el-menu class="aui-navbar__menu mr-auto" mode="horizontal"> <el-menu
<el-menu-item index="1" @click="$store.state.sidebarFold = !$store.state.sidebarFold"> class="aui-navbar__menu mr-auto"
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch" aria-hidden="true"><use xlink:href="#icon-outdent"></use></svg> mode="horizontal"
>
<el-menu-item
index="1"
@click="$store.state.sidebarFold = !$store.state.sidebarFold"
>
<svg
class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
aria-hidden="true"
>
<use xlink:href="#icon-outdent"></use>
</svg>
</el-menu-item> </el-menu-item>
<el-menu-item index="2" @click="refresh()"> <el-menu-item
<svg class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh" aria-hidden="true"><use xlink:href="#icon-sync"></use></svg> index="2"
@click="refresh()"
>
<svg
class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh"
aria-hidden="true"
>
<use xlink:href="#icon-sync"></use>
</svg>
</el-menu-item> </el-menu-item>
</el-menu> </el-menu>
<el-menu class="aui-navbar__menu" mode="horizontal"> <el-menu
<el-menu-item index="1"> class="aui-navbar__menu"
mode="horizontal"
>
<!-- <el-menu-item index="1">
<el-dropdown placement="bottom" :show-timeout="0"> <el-dropdown placement="bottom" :show-timeout="0">
<el-button size="mini">{{ $t('_lang') }}</el-button> <el-button size="mini">{{ $t('_lang') }}</el-button>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item v-for="(val, key) in i18nMessages" :key="key" @click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item> <el-dropdown-item v-for="(val, key) in i18nMessages" :key="key" @click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</el-menu-item> </el-menu-item> -->
<el-menu-item index="2"> <!-- <el-menu-item index="2">
<a href="//www.hmit.io/" target="_blank"> <a
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"><use xlink:href="#icon-earth"></use></svg> href="//www.hmit.io/"
target="_blank"
>
<svg
class="icon-svg aui-navbar__icon-menu"
aria-hidden="true"
>
<use xlink:href="#icon-earth"></use>
</svg>
</a> </a>
</el-menu-item> -->
<el-menu-item
index="3"
@click="fullscreenHandle()"
>
<svg
class="icon-svg aui-navbar__icon-menu"
aria-hidden="true"
>
<use xlink:href="#icon-fullscreen"></use>
</svg>
</el-menu-item> </el-menu-item>
<el-menu-item index="3" @click="fullscreenHandle()"> <el-menu-item
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"><use xlink:href="#icon-fullscreen"></use></svg> index="4"
</el-menu-item> class="aui-navbar__avatar"
<el-menu-item index="4" class="aui-navbar__avatar"> >
<el-dropdown placement="bottom" :show-timeout="0"> <el-dropdown
placement="bottom"
:show-timeout="0"
>
<span class="el-dropdown-link"> <span class="el-dropdown-link">
<img src="~@/assets/img/avatar.png"> <img src="~@/assets/img/avatar.png">
<span>{{ $store.state.user.name }}</span> <span>{{ $store.state.user.name }}</span>
...@@ -48,61 +112,73 @@ ...@@ -48,61 +112,73 @@
</el-menu> </el-menu>
</div> </div>
<!-- 弹窗, 修改密码 --> <!-- 弹窗, 修改密码 -->
<update-password v-if="updatePassowrdVisible" ref="updatePassowrd"></update-password> <update-password
v-if="updatePassowrdVisible"
ref="updatePassowrd"
></update-password>
</nav> </nav>
</template> </template>
<script> <script>
import { messages } from '@/i18n' import { messages } from "@/i18n";
import screenfull from 'screenfull' import screenfull from "screenfull";
import UpdatePassword from './main-navbar-update-password' import UpdatePassword from "./main-navbar-update-password";
import { clearLoginInfo } from '@/utils' import { clearLoginInfo } from "@/utils";
export default { export default {
inject: ['refresh'], inject: ["refresh"],
data () { data() {
return { return {
i18nMessages: messages, i18nMessages: messages,
updatePassowrdVisible: false updatePassowrdVisible: false,
} };
}, },
components: { components: {
UpdatePassword UpdatePassword,
}, },
methods: { methods: {
// 全屏 // 全屏
fullscreenHandle () { fullscreenHandle() {
if (!screenfull.enabled) { if (!screenfull.enabled) {
return this.$message({ return this.$message({
message: this.$t('fullscreen.prompt'), message: this.$t("fullscreen.prompt"),
type: 'warning', type: "warning",
duration: 500 duration: 500,
}) });
} }
screenfull.toggle() screenfull.toggle();
}, },
// 修改密码 // 修改密码
updatePasswordHandle () { updatePasswordHandle() {
this.updatePassowrdVisible = true this.updatePassowrdVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.updatePassowrd.init() this.$refs.updatePassowrd.init();
}) });
}, },
// 退出 // 退出
logoutHandle () { logoutHandle() {
this.$confirm(this.$t('prompt.info', { 'handle': this.$t('logout') }), this.$t('prompt.title'), { this.$confirm(
confirmButtonText: this.$t('confirm'), this.$t("prompt.info", { handle: this.$t("logout") }),
cancelButtonText: this.$t('cancel'), this.$t("prompt.title"),
type: 'warning' {
}).then(() => { confirmButtonText: this.$t("confirm"),
this.$http.post('/logout').then(({ data: res }) => { cancelButtonText: this.$t("cancel"),
if (res.code !== 0) { type: "warning",
return this.$message.error(res.msg) }
} )
clearLoginInfo() .then(() => {
this.$router.push({ name: 'login' }) this.$http
}).catch(() => {}) .post("/logout")
}).catch(() => {}) .then(({ data: res }) => {
} if (res.code !== 0) {
} return this.$message.error(res.msg);
} }
clearLoginInfo();
this.$router.push({ name: "login" });
})
.catch(() => {});
})
.catch(() => {});
},
},
};
</script> </script>
<template> <template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> <el-dialog
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> :visible.sync="visible"
<el-form-item label="问题ID" prop="questionId"> :title="!dataForm.id ? $t('add') : $t('update')"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"
>
<!-- <el-form-item label="问题ID" prop="questionId">
<el-input v-model="dataForm.questionId" placeholder="问题ID"></el-input> <el-input v-model="dataForm.questionId" placeholder="问题ID"></el-input>
</el-form-item> -->
<el-form-item
label="可选答案"
prop="answer"
>
<el-input
v-model="dataForm.answer"
placeholder="可选答案"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="可选答案" prop="answer"> </el-form>
<el-input v-model="dataForm.answer" placeholder="可选答案"></el-input>
</el-form-item>
</el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
export default { export default {
data () { props: ["questionId"],
data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
creator: '', creator: "",
createDate: '', createDate: "",
questionId: '', questionId: "",
answer: '' answer: "",
} },
} };
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
questionId: [ /* questionId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
], required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], */
answer: [ answer: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}, },
// 获取信息 // 获取信息
getInfo () { getInfo() {
this.$http.get(`/fhjw/fhjwanswer/${this.dataForm.id}`).then(({ data: res }) => { this.$http
if (res.code !== 0) { .get(`/fhjw/fhjwanswer/${this.dataForm.id}`)
return this.$message.error(res.msg) .then(({ data: res }) => {
} if (res.code !== 0) {
this.dataForm = { return this.$message.error(res.msg);
...this.dataForm, }
...res.data this.dataForm = {
} ...this.dataForm,
}).catch(() => {}) ...res.data,
};
})
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.dataForm.questionId = this.questionId;
return false this.$refs["dataForm"].validate((valid) => {
} if (!valid) {
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/fhjwanswer/', this.dataForm).then(({ data: res }) => { return false;
if (res.code !== 0) {
return this.$message.error(res.msg)
} }
this.$message({
message: this.$t('prompt.success'), this.$http[!this.dataForm.id ? "post" : "put"](
type: 'success', "/fhjw/fhjwanswer/",
duration: 500, this.dataForm
onClose: () => { )
this.visible = false .then(({ data: res }) => {
this.$emit('refreshDataList') if (res.code !== 0) {
} return this.$message.error(res.msg);
}) }
}).catch(() => {}) this.$message({
}) message: this.$t("prompt.success"),
}, 1000, { 'leading': true, 'trailing': false }) type: "success",
} duration: 500,
} onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhjwanswer}"> <div class="mod-fhjw__fhjwanswer}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
<el-form-item> :inline="true"
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> :model="dataForm"
</el-form-item> @keyup.enter.native="getDataList()"
<el-form-item> >
<!-- <el-form-item>
<el-input
v-model="dataForm.answer"
placeholder="可选答案"
clearable
></el-input>
</el-form-item> -->
<!-- <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item> -->
<el-form-item> <!-- <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button
</el-form-item> type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwanswer:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwanswer:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button
type="danger"
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> :data="dataList"
<el-table-column prop="questionId" label="问题ID" header-align="center" align="center"></el-table-column> border
<el-table-column prop="answer" label="可选答案" header-align="center" align="center"></el-table-column> @selection-change="dataListSelectionChangeHandle"
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> style="width: 100%;"
>
<el-table-column
type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="answer"
label="可选答案"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="questionId"
label="问题"
header-align="center"
align="center"
>
<template>
<div>{{questionName}}</div>
</template>
</el-table-column>
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:fhjwanswer:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button
<el-button v-if="$hasPermission('fhjw:fhjwanswer:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button>
<el-button
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -37,35 +102,45 @@ ...@@ -37,35 +102,45 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
:questionId="questionId"
@refreshDataList="getDataList"
></add-or-update>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './fhjwanswer-add-or-update' import AddOrUpdate from "./fhjwanswer-add-or-update";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhjwanswer/page', getDataListURL:
"/fhjw/fhjwanswer/page?questionId=" + this.$route.params.dictTypeId,
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/fhjwanswer/export', exportURL: "/fhjw/fhjwanswer/export",
deleteURL: '/fhjw/fhjwanswer', deleteURL: "/fhjw/fhjwanswer",
deleteIsBatch: true deleteIsBatch: true,
}, },
dataForm: { dataForm: {
id: '' id: "",
} answer: "",
} },
questionName: this.$route.params.questionName,
questionId: this.$route.params.dictTypeId,
};
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
} },
} };
</script> </script>
<template> <template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> <el-dialog
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> :visible.sync="visible"
<el-form-item label="受案号" prop="caseNum"> width="80%"
<el-input v-model="dataForm.caseNum" placeholder="受案号"></el-input> :title="!dataForm.id ? $t('add') : $t('update')"
</el-form-item> :close-on-click-modal="false"
<el-form-item label="案件名称" prop="caseName"> :close-on-press-escape="false"
<el-input v-model="dataForm.caseName" placeholder="案件名称"></el-input> >
</el-form-item> <el-form
<el-form-item label="办理期限" prop="deadline"> :model="dataForm"
<el-input v-model="dataForm.deadline" placeholder="办理期限"></el-input> :rules="dataRule"
</el-form-item> ref="dataForm"
<el-form-item label="受理日期" prop="acceptanceDate"> @keyup.enter.native="dataFormSubmitHandle()"
<el-input v-model="dataForm.acceptanceDate" placeholder="受理日期"></el-input> :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"
</el-form-item> >
<el-form-item label="审结日期" prop="completeDate"> <el-row :gutter="30">
<el-input v-model="dataForm.completeDate" placeholder="审结日期"></el-input> <el-col :span="12">
</el-form-item> <el-form-item
<el-form-item label="强制措施" prop="coerciveMeasures"> label="受案号"
<el-input v-model="dataForm.coerciveMeasures" placeholder="强制措施"></el-input> prop="caseNum"
</el-form-item> >
<el-form-item label="案件比" prop="caseQuality"> <el-input
<el-input v-model="dataForm.caseQuality" placeholder="案件比"></el-input> v-model="dataForm.caseNum"
placeholder="受案号"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="案件名称"
prop="caseName"
>
<el-input
v-model="dataForm.caseName"
placeholder="案件名称"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item
label="办理期限"
prop="deadline"
>
<el-input
v-model="dataForm.deadline"
placeholder="办理期限"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="案件详情" prop="caseDetail"> <el-row :gutter="30">
<el-input v-model="dataForm.caseDetail" placeholder="案件详情"></el-input> <el-col :span="12">
<el-form-item
label="受理日期"
prop="acceptanceDate"
>
<el-date-picker
style="width:100%"
v-model="dataForm.acceptanceDate"
type="date"
placeholder="受理日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="审结日期"
prop="completeDate"
>
<!-- <el-input
v-model="dataForm.completeDate"
placeholder="审结日期"
></el-input> -->
<el-date-picker
style="width:100%"
v-model="dataForm.completeDate"
type="date"
placeholder="审结日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item
label="强制措施"
prop="coerciveMeasures"
>
<el-input
v-model="dataForm.coerciveMeasures"
placeholder="强制措施"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="案件比"
prop="caseQuality"
>
<el-input
v-model="dataForm.caseQuality"
placeholder="案件比"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item
label="案件详情"
prop="caseDetail"
>
<el-input
type="textarea"
v-model="dataForm.caseDetail"
placeholder="案件详情"
rows="3"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
export default { export default {
data () { data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
caseNum: '', caseNum: "",
caseName: '', caseName: "",
deadline: '', deadline: "",
acceptanceDate: '', acceptanceDate: "",
completeDate: '', completeDate: "",
coerciveMeasures: '', coerciveMeasures: "",
caseQuality: '', caseQuality: "",
caseDetail: '', caseDetail: "",
creator: '', creator: "",
createDate: '' createDate: "",
} },
} };
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
caseNum: [ caseNum: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
caseName: [ caseName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
deadline: [ deadline: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
acceptanceDate: [ acceptanceDate: [
{ required: false, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
completeDate: [ completeDate: [
{ required: false, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
coerciveMeasures: [ coerciveMeasures: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
caseQuality: [ caseQuality: [
{ required: false, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
caseDetail: [ caseDetail: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}, },
// 获取信息 // 获取信息
getInfo () { getInfo() {
this.$http.get(`/fhjw/fhjwcase/${this.dataForm.id}`).then(({ data: res }) => { this.$http
if (res.code !== 0) { .get(`/fhjw/fhjwcase/${this.dataForm.id}`)
return this.$message.error(res.msg) .then(({ data: res }) => {
} if (res.code !== 0) {
this.dataForm = { return this.$message.error(res.msg);
...this.dataForm, }
...res.data this.dataForm = {
} ...this.dataForm,
}).catch(() => {}) ...res.data,
};
})
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.$refs["dataForm"].validate((valid) => {
return false if (!valid) {
} return false;
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/fhjwcase/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} }
this.$message({ this.$http[!this.dataForm.id ? "post" : "put"](
message: this.$t('prompt.success'), "/fhjw/fhjwcase/",
type: 'success', this.dataForm
duration: 500, )
onClose: () => { .then(({ data: res }) => {
this.visible = false if (res.code !== 0) {
this.$emit('refreshDataList') return this.$message.error(res.msg);
} }
}) this.$message({
}).catch(() => {}) message: this.$t("prompt.success"),
}) type: "success",
}, 1000, { 'leading': true, 'trailing': false }) duration: 500,
} onClose: () => {
} this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
<template>
<el-dialog
:visible.sync="visible"
title="详情"
width="80%"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '140px' : '100px'"
>
<el-row :gutter="30">
<el-col :span="13">
<el-form-item
label="受案号"
prop="caseNum"
>
<el-input
v-model="dataForm.caseNum"
placeholder="受案号"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item
label="案件名称"
prop="caseName"
>
<el-input
v-model="dataForm.caseName"
placeholder="案件名称"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="13">
<el-form-item
label="案件比"
prop="caseQuality"
>
<el-input
v-model="dataForm.caseQuality"
placeholder="案件比"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item
label="受理日期"
prop="acceptanceDate"
>
<el-input
v-model="dataForm.acceptanceDate"
readonly
placeholder="受理日期"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="13">
<el-form-item
label="强制措施"
prop="coerciveMeasures"
>
<el-input
v-model="dataForm.coerciveMeasures"
placeholder="强制措施"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item
label="审结日期"
prop="completeDate"
>
<el-input
v-model="dataForm.completeDate"
placeholder="审结日期"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item
label="办理期限"
prop="deadline"
>
<el-input
v-model="dataForm.deadline"
placeholder="办理期限"
readonly
></el-input>
</el-form-item>
<el-row
:gutter="30"
class="user"
>
<el-col
:span="12"
v-for="(item,index) in list"
:key="index"
>
<el-form-item
:label="index==0?'案件相关人员':''"
:label-width="index%2==0?'100px':'0px'"
prop="userLists"
>
<el-input
v-model="item.detail"
placeholder="案件相关人员"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item
label="案件详情"
prop="caseDetail"
>
<el-input
type="textarea"
v-model="dataForm.caseDetail"
placeholder="案件详情"
rows="3"
readonly
></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<!-- <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button> -->
</template>
</el-dialog>
</template>
<script>
import debounce from "lodash/debounce";
export default {
data() {
return {
visible: false,
dataForm: {
id: "",
caseNum: "",
caseName: "",
deadline: "",
acceptanceDate: "",
completeDate: "",
coerciveMeasures: "",
caseQuality: "",
caseDetail: "",
creator: "",
createDate: "",
},
list: [],
};
},
computed: {},
methods: {
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/fhjw/fhjwcase/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
this.dataForm.userLists.forEach((ele) => {
if (ele.userRole == "当事人") {
let idNo = "暂无";
if (ele.userIdno) {
idNo = ele.userIdno;
}
this.list.push({
detail:
ele.userRole +
":" +
ele.username +
"," +
"联系方式:" +
ele.mobile +
"," +
"身份证号:" +
idNo,
});
} else {
this.list.push({
detail:
ele.userRole +
":" +
ele.username +
"," +
"联系方式:" +
ele.mobile,
});
}
});
console.log(this.list);
})
.catch(() => {});
},
},
};
</script>
<style lang="less" scoped>
.no-index {
width: calc(50% - 10px);
margin-top: 20px;
margin-right: 10px;
}
.index {
width: calc(50% - 10px);
margin-right: 10px;
}
/deep/.el-col {
padding-left: 0;
}
</style>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhjwcase}"> <div class="mod-fhjw__fhjwcase}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item> <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> <el-input
v-model="dataForm.caseName"
placeholder="案件名称"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-input
v-model="dataForm.caseNum"
placeholder="受案号"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwcase:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-button
v-if="$hasPermission('fhjw:fhjwcase:save')"
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwcase:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button
v-if="$hasPermission('fhjw:fhjwcase:delete')"
type="danger"
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="id" label="主键id" header-align="center" align="center"></el-table-column> :data="dataList"
<el-table-column prop="caseNum" label="受案号" header-align="center" align="center"></el-table-column> border
<el-table-column prop="caseName" label="案件名称" header-align="center" align="center"></el-table-column> @selection-change="dataListSelectionChangeHandle"
<el-table-column prop="deadline" label="办理期限" header-align="center" align="center"></el-table-column> style="width: 100%;"
<el-table-column prop="acceptanceDate" label="受理日期" header-align="center" align="center"></el-table-column> >
<el-table-column prop="completeDate" label="审结日期" header-align="center" align="center"></el-table-column> <el-table-column
<el-table-column prop="coerciveMeasures" label="强制措施" header-align="center" align="center"></el-table-column> type="selection"
<el-table-column prop="caseQuality" label="案件比" header-align="center" align="center"></el-table-column> header-align="center"
<el-table-column prop="caseDetail" label="案件详情" header-align="center" align="center"></el-table-column> align="center"
<el-table-column prop="creator" label="创建者" header-align="center" align="center"></el-table-column> width="50"
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> ></el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> <!-- <el-table-column prop="id" label="主键id" header-align="center" align="center"></el-table-column> -->
<el-table-column
prop="caseNum"
label="受案号"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="caseName"
label="案件名称"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="deadline"
label="办理期限"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="acceptanceDate"
label="受理日期"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="completeDate"
label="审结日期"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="coerciveMeasures"
label="强制措施"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="caseQuality"
label="案件比"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="caseDetail"
label="案件详情"
header-align="center"
align="center"
>
<template slot-scope="scope">
<div class="caseDetail">{{scope.row.caseDetail}}</div>
</template>
</el-table-column>
<el-table-column
prop="userName"
label="承办人"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:fhjwcase:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <!-- <el-button
<el-button v-if="$hasPermission('fhjw:fhjwcase:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> v-if="$hasPermission('fhjw:fhjwcase:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button> -->
<el-button
type="text"
size="small"
@click="detailHandle(scope.row.id)"
>详情</el-button>
<el-button
v-if="$hasPermission('fhjw:fhjwcase:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -45,35 +160,68 @@ ...@@ -45,35 +160,68 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
<detail
v-if="detailVisible"
ref="detail"
@refreshDataList="getDataList"
></detail>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './fhjwcase-add-or-update' import AddOrUpdate from "./fhjwcase-add-or-update";
import Detail from "./fhjwcase-detail";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhjwcase/page', getDataListURL: "/fhjw/fhjwcase/page",
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/fhjwcase/export', exportURL: "/fhjw/fhjwcase/export",
deleteURL: '/fhjw/fhjwcase', deleteURL: "/fhjw/fhjwcase",
deleteIsBatch: true deleteIsBatch: true,
}, },
dataForm: { dataForm: {
id: '' id: "",
} caseName: "",
} caseNum: "",
},
detailVisible: false,
};
},
methods: {
detailHandle(id) {
console.log(id);
this.detailVisible = true;
this.$nextTick(() => {
this.$refs.detail.dataForm.id = id;
this.$refs.detail.init();
});
},
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
} Detail,
} },
};
</script> </script>
<style lang="less" scoped>
.caseDetail {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;
}
</style>
<template> <template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> <el-dialog
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> :visible.sync="visible"
<el-form-item label="用户ID" prop="userId"> :title="!dataForm.id ? $t('add') : $t('update')"
<el-input v-model="dataForm.userId" placeholder="用户ID"></el-input> :close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"
>
<el-form-item
label="用户ID"
prop="userId"
>
<el-input
v-model="dataForm.userId"
placeholder="用户"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="模板ID" prop="tempId"> <el-form-item
<el-input v-model="dataForm.tempId" placeholder="模板ID"></el-input> label="模板ID"
prop="tempId"
>
<el-input
v-model="dataForm.tempId"
placeholder="模板"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="问题ID" prop="questionId"> <el-form-item
<el-input v-model="dataForm.questionId" placeholder="问题ID"></el-input> label="问题ID"
prop="questionId"
>
<el-input
v-model="dataForm.questionId"
placeholder="问题"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="答案ID" prop="answerId"> <el-form-item
<el-input v-model="dataForm.answerId" placeholder="答案ID"></el-input> label="caseId"
prop="caseId"
>
<el-input
v-model="dataForm.caseId"
placeholder="问题"
></el-input>
</el-form-item> </el-form-item>
</el-form> <el-form-item
label="答案ID"
prop="answerId"
>
<el-input
v-model="dataForm.answerId"
placeholder="答案"
></el-input>
</el-form-item>
</el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
export default { export default {
data () { data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
createDate: '', createDate: "",
userId: '', userId: "",
tempId: '', tempId: "",
questionId: '', questionId: "",
answerId: '' answerId: "",
} caseId: "",
} },
};
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
userId: [ userId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
tempId: [ tempId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
questionId: [ questionId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
answerId: [ answerId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}, },
// 获取信息 // 获取信息
getInfo () { getInfo() {
this.$http.get(`/fhjw/fhjwcomment/${this.dataForm.id}`).then(({ data: res }) => { this.$http
if (res.code !== 0) { .get(`/fhjw/fhjwcomment/${this.dataForm.id}`)
return this.$message.error(res.msg) .then(({ data: res }) => {
} if (res.code !== 0) {
this.dataForm = { return this.$message.error(res.msg);
...this.dataForm, }
...res.data this.dataForm = {
} ...this.dataForm,
}).catch(() => {}) ...res.data,
};
})
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.$refs["dataForm"].validate((valid) => {
return false if (!valid) {
} return false;
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/fhjwcomment/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} }
this.$message({ this.$http[!this.dataForm.id ? "post" : "put"](
message: this.$t('prompt.success'), "/fhjw/fhjwcomment/",
type: 'success', this.dataForm
duration: 500, )
onClose: () => { .then(({ data: res }) => {
this.visible = false if (res.code !== 0) {
this.$emit('refreshDataList') return this.$message.error(res.msg);
} }
}) this.$message({
}).catch(() => {}) message: this.$t("prompt.success"),
}) type: "success",
}, 1000, { 'leading': true, 'trailing': false }) duration: 500,
} onClose: () => {
} this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
<template>
<el-dialog
:visible.sync="visible"
title="详情"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="75%"
>
<el-dialog
:visible.sync="visible2"
title="详情"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="10%"
append-to-body
>
<el-button @click="click2">111</el-button>
</el-dialog>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '100px'"
>
<el-row :gutter="30">
<el-col :span="8">
<el-form-item
label="案件名称"
prop="caseName"
>
<el-input
v-model="dataForm.caseName"
placeholder="案件名称"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="用户"
prop="tempName"
>
<el-input
v-model="dataForm.userName"
placeholder="用户"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="角色"
prop="userName"
>
<el-input
v-model="dataForm.role"
placeholder="角色"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- <el-form-item
label="问题"
prop="questionName"
>
<el-input
v-model="dataForm.questionName"
placeholder="问题"
readonly
></el-input>
</el-form-item>
<el-form-item
label="答案"
prop="answer"
readonly
>
<el-input
v-model="dataForm.answer"
placeholder="答案"
></el-input>
</el-form-item> -->
<el-form-item
label="问题及答案"
prop="userName"
>
<el-table
:data="currentTableData"
style="width: 100%"
:header-row-style="{height:'20px'}"
:row-style="{height:'20px'}"
size="mini"
>
<el-table-column
type="index"
label="序号"
width="50"
>
</el-table-column>
<el-table-column
prop="questionName"
label="问题"
>
</el-table-column>
<el-table-column
prop="answer"
label="答案"
>
</el-table-column>
</el-table>
<el-pagination
layout="prev, pager, next"
:total="list.length"
:page-size="10"
:current-page.sync="currentPage"
@current-change='handleCurrentChange'
>
</el-pagination>
</el-form-item>
</el-form>
<template slot="footer">
<!-- <el-button @click="visible2 = true">111</el-button> -->
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<!-- <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button> -->
</template>
</el-dialog>
</template>
<script>
import debounce from "lodash/debounce";
export default {
data() {
return {
visible: false,
currentPage: 1,
visible2: false,
currentTableData: [],
dataForm: {
id: "",
createDate: "",
userId: "",
tempId: "",
questionId: "",
answerId: "",
caseId: "",
userId: "",
role: "",
},
headerRowStyle: {
color: "red",
background: "red",
},
list: [],
};
},
computed: {
dataRule() {
return {
userId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
tempId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
questionId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
answerId: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},
created() {},
methods: {
click2() {
this.$message({
type: "success",
message: "车接口接0",
onClose: () => {
this.visible2 = false;
},
});
},
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
// console.log("sdjkfjkdhghf", this.dataForm);
if (this.dataForm.caseId) {
this.getInfo();
}
});
},
handleCurrentChange() {
console.log(this.currentPage);
this.currentTableData = this.list.slice(
(this.currentPage - 1) * 10,
this.currentPage * 10
);
},
// 获取信息
getInfo() {
this.$http
.get(
/* `/fhjw/fhjwcomment/${this.dataForm.caseId}` */ "/fhjw/fhjwcomment/getAnswer?caseId=" +
this.dataForm.caseId +
"&userId=" +
this.dataForm.userId
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
this.list = this.dataForm.questionList;
this.currentTableData = this.list.slice(0, 10);
})
.catch(() => {});
},
// 表单提交
dataFormSubmitHandle: debounce(
function () {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
this.$http[!this.dataForm.id ? "post" : "put"](
"/fhjw/fhjwcomment/",
this.dataForm
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhjwcomment}"> <div class="mod-fhjw__fhjwcomment}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item> <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> <el-input
v-model="dataForm.caseName"
placeholder="案件名称"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-button
v-if="$hasPermission('fhjw:fhjwcomment:save')"
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwcomment:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
</el-form-item> v-if="$hasPermission('fhjw:fhjwcomment:delete')"
<el-form-item> type="danger"
<el-button v-if="$hasPermission('fhjw:fhjwcomment:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> @click="deleteHandle2()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> :data="dataList"
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> border
<el-table-column prop="userId" label="用户ID" header-align="center" align="center"></el-table-column> @selection-change="dataListSelectionChangeHandle2"
<el-table-column prop="tempId" label="模板ID" header-align="center" align="center"></el-table-column> style="width: 100%;"
<el-table-column prop="questionId" label="问题ID" header-align="center" align="center"></el-table-column> >
<el-table-column prop="answerId" label="答案ID" header-align="center" align="center"></el-table-column> <el-table-column
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<!-- <el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> -->
<el-table-column
prop="caseName"
label="案件名称"
header-align="center"
align="center"
>
<template slot-scope="scope">
<el-button
type="text"
@click="childHandle(scope.row)"
>{{ scope.row.caseName }}</el-button>
</template>
</el-table-column>
<!-- <el-table-column
prop="tempName"
label="模板"
header-align="center"
align="center"
></el-table-column> -->
<!-- <el-table-column
prop="questionName"
label="问题"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="answer"
label="答案"
header-align="center"
align="center"
></el-table-column> -->
<!-- <el-table-column
prop="userName"
label="用户"
header-align="center"
align="center"
></el-table-column> -->
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:fhjwcomment:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <!-- <el-button
<el-button v-if="$hasPermission('fhjw:fhjwcomment:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> type="text"
size="small"
@click="detailHandle(scope.row.caseId)"
>详情</el-button> -->
<el-button
v-if="$hasPermission('fhjw:fhjwcomment:delete')"
type="text"
size="small"
@click="deleteHandle2(scope.row.id)"
>{{ $t('delete') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -40,35 +127,141 @@ ...@@ -40,35 +127,141 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
<detail
v-if="detailVisible"
ref="detail"
@refreshDataList="getDataList"
></detail>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './fhjwcomment-add-or-update' import AddOrUpdate from "./fhjwcomment-add-or-update";
import Detail from "./fhjwcomment-detail";
import { addDynamicRoute } from "@/router";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhjwcomment/page', getDataListURL: "/fhjw/fhjwcomment/page",
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/fhjwcomment/export', exportURL: "/fhjw/fhjwcomment/export",
deleteURL: '/fhjw/fhjwcomment', deleteURL: "/fhjw/fhjwcomment",
deleteIsBatch: true deleteIsBatch: true,
deleteIsBatchKey: "id",
}, },
detailVisible: false,
showpop: false,
showpop2: false,
dataForm: { dataForm: {
id: '' id: "",
caseName: "",
},
ids: "",
dataListSelections2: "",
};
},
methods: {
// 多选
dataListSelectionChangeHandle2(val) {
this.dataListSelections2 = val;
},
// 删除
deleteHandle2(id) {
if (
this.mixinViewModuleOptions.deleteIsBatch &&
!id &&
this.dataListSelections2.length <= 0
) {
return this.$message({
message: this.$t("prompt.deleteBatch"),
type: "warning",
duration: 500,
});
} }
} let info = "该操作将会删除本案件下所有的评价,确定进行删除操作吗?";
this.$confirm(info, this.$t("prompt.title"), {
confirmButtonText: this.$t("confirm"),
cancelButtonText: this.$t("cancel"),
type: "warning",
})
.then(() => {
this.$http
.delete(
`${this.mixinViewModuleOptions.deleteURL}${
this.mixinViewModuleOptions.deleteIsBatch ? "" : "/" + id
}`,
this.mixinViewModuleOptions.deleteIsBatch
? {
data: id
? [id]
: this.dataListSelections2.map(
(item) =>
item[this.mixinViewModuleOptions.deleteIsBatchKey]
),
}
: {}
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.query();
},
});
})
.catch(() => {});
})
.catch(() => {});
},
detailHandle(id) {
console.log(id);
this.detailVisible = true;
this.$nextTick(() => {
this.$refs.detail.dataForm.caseId = id;
this.$refs.detail.init();
});
},
showpopclick(id) {
this.ids = id;
this.showpop2 = true;
},
// 子级
childHandle(row) {
// 路由参数
const routeParams = {
routeName: `${this.$route.name}__${row.caseId}`,
title: `${this.$route.meta.title} - ${row.caseName}`,
path: "fhjw/fhjwcommontuser",
params: {
dictTypeId: row.caseId,
},
};
// 动态路由
addDynamicRoute(routeParams, this.$router);
},
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
} Detail,
} },
};
</script> </script>
<template>
<el-card
shadow="never"
class="aui-card--fill"
>
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-date-picker
class="date-val"
v-model="dataForm.dateVal"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<div class="top">
<!-- <div
ref="chartpie"
style="height:450px;width:100%"
></div> -->
<Echarts
:options="optionsAll"
height="450px"
width="100%"
/>
</div>
<div class="bottom">
<div
class="item-pie"
v-for="(item,index) in list"
:key="item.id"
>
<!-- <Echarts
:options="optionsDepart[index]"
height="450px"
width="100%"
/> -->
<div
:id="forId(index)"
style="height:300px;width:100%;"
></div>
</div>
</div>
</el-card>
</template>
<script>
import Echarts from "../../../components/echarts.vue";
import * as echarts from "echarts";
export default {
name: "fhjwcommentstatistical",
components: { Echarts },
data() {
return {
dataForm: {
dateVal: "",
},
chartList: [], //
getId: [], //用来生成echarts
chartList_values: [], //取其值
optionsAll: {},
optionsDepart: {},
list: [
{
id: 1,
title: "第一检察部",
goodnum: 500,
middlenum: 20,
bandnum: 0,
},
{
id: 2,
title: "第二检察部",
goodnum: 800,
middlenum: 50,
bandnum: 1,
},
{
id: 3,
title: "第三检察部",
goodnum: 200,
middlenum: 5,
bandnum: 0,
},
{
id: 4,
title: "第四检察部",
goodnum: 100,
middlenum: 1,
bandnum: 1,
},
{
id: 5,
title: "第五检察部",
goodnum: 250,
middlenum: 2,
bandnum: 2,
},
{
id: 6,
title: "第六检察部",
goodnum: 500,
middlenum: 3,
bandnum: 1,
},
{
id: 7,
title: "第七检察部",
goodnum: 338,
middlenum: 8,
bandnum: 0,
},
{
id: 8,
title: "溪口检察部",
goodnum: 188,
middlenum: 2,
bandnum: 0,
},
],
};
},
methods: {
forId(index) {
return "geo_" + index;
},
/* show(option) {
console.log(option.level_incite_user_list, '每个等级的占比情况11');
this.chartList = option.level_incite_user_list;
this.mapTree();
}, */
mapTree() {
this.getId = [];
this.chartList_values = Object.values(this.list);
this.$nextTick(function () {
for (var i = 0; i < this.chartList_values.length; i++) {
let arr = [];
arr.push(
{
value: this.chartList_values[i].goodnum,
name: "好",
},
{
value: this.chartList_values[i].middlenum,
name: "中",
},
{
value: this.chartList_values[i].bandnum,
name: "差",
}
);
console.log(arr, "arr========");
//拿到channel_grade_name作为变量key
this.getId.push(echarts.init(document.getElementById("geo_" + i)));
this.getId[i].setOption({
title: {
text: this.chartList_values[i].title,
left: "center",
},
color: ["#91cc75", "#FFDC60", "#FF7070"],
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)",
},
legend: {
bottom: 0,
left: "center",
data: ["好", "中", "差"],
},
series: [
{
name: "占比",
type: "pie",
radius: "60%",
center: ["50%", "50%"],
selectedMode: "single",
data: arr,
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
});
}
});
},
getPie() {
//const myChart = echarts.init(chart, null, { renderer: "svg" });
let legendData = [];
let goodData = [];
let middleData = [];
let badData = [];
this.list.forEach((ele) => {
legendData.push(ele.title);
goodData.push(ele.goodnum);
middleData.push(ele.middlenum);
badData.push(ele.bandnum);
});
this.optionsAll = {
color: ["#91cc75", "#FFDC60", "#FF7070"],
title: { text: "评价统计", left: "center" },
legend: {
bottom: 0,
data: ["好", "中", "差"],
},
xAxis: {
type: "category",
data: legendData,
},
yAxis: {
type: "value",
},
series: [
{
name: "好",
data: goodData,
type: "bar",
label: {
show: true,
position: "top",
},
},
{
name: "中",
data: middleData,
type: "bar",
label: {
show: true,
position: "top",
},
},
{
name: "差",
data: badData,
type: "bar",
label: {
show: true,
position: "top",
},
},
],
};
},
},
created() {
this.getPie();
},
mounted() {
this.mapTree();
},
};
</script>
<style lang="less" scoped>
.fhjwcommentstatistical {
width: 100%;
.top {
width: 100%;
display: flex;
}
}
.bottom {
width: 100%;
display: flex;
flex-wrap: wrap;
.item-pie {
width: calc(25% - 10px);
margin-right: 10px;
margin-top: 80px;
// flex: 1;
//display: flex;
}
}
</style>
\ No newline at end of file
<template>
<div class="fhjwcommontuser">
<el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhjwcomment}">
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-input
v-model="dataForm.caseName"
placeholder="案件名称"
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<!-- <el-form-item>
<el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> -->
<!-- <el-form-item>
<el-button
v-if="$hasPermission('fhjw:fhjwcomment:save')"
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> -->
<el-form-item>
<el-button
v-if="$hasPermission('fhjw:fhjwcomment:delete')"
type="danger"
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item>
</el-form>
<el-table
v-loading="dataListLoading"
:data="dataList"
border
@selection-change="dataListSelectionChangeHandle"
style="width: 100%;"
>
<el-table-column
type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<!-- <el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> -->
<!-- <el-table-column
prop="caseName"
label="案件名称"
header-align="center"
align="center"
>
<template slot-scope="scope">
<el-button
type="text"
@click="childHandle(scope.row)"
>{{ scope.row.caseName }}</el-button>
</template>
</el-table-column>
<el-table-column
prop="tempName"
label="模板"
header-align="center"
align="center"
></el-table-column> -->
<!-- <el-table-column
prop="questionName"
label="问题"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="answer"
label="答案"
header-align="center"
align="center"
></el-table-column> -->
<el-table-column
prop="username"
label="用户"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="detailHandle(scope.row.caseId,scope.row.id,scope.row.userRole)"
>详情</el-button>
<el-button
v-if="$hasPermission('fhjw:fhjwcomment:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
>
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
<detail
v-if="detailVisible"
ref="detail"
@refreshDataList="getDataList"
></detail>
</div>
</el-card>
</div>
</template>
<script>
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./fhjwcomment-add-or-update";
import Detail from "./fhjwcomment-detail";
export default {
name: "fhjwcommontuser",
mixins: [mixinViewModule],
components: {
AddOrUpdate,
Detail,
},
data() {
return {
//GET /fhjw/user/getUserPageByCase
//DELETE /fhjw/user
mixinViewModuleOptions: {
getDataListURL:
"/fhjw/user/getUserPageByCase?caseId=" +
this.$route.params.dictTypeId,
getDataListIsPage: true,
exportURL: "/fhjw/fhjwcomment/export",
deleteURL: "/fhjw/user",
deleteIsBatch: true,
},
detailVisible: false,
dataForm: {
id: "",
caseName: "",
},
};
},
methods: {
detailHandle(id, userId, role) {
console.log(id);
this.detailVisible = true;
this.$nextTick(() => {
this.$refs.detail.dataForm.caseId = this.$route.params.dictTypeId;
this.$refs.detail.dataForm.userId = userId;
this.$refs.detail.dataForm.role = role;
this.$refs.detail.init();
});
},
},
created() {},
};
</script>
<style lang="less" scoped>
.fhjwcommontuser {
width: 100%;
}
</style>
\ No newline at end of file
<template> <template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> <el-dialog
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> :visible.sync="visible"
<el-form-item label="用户ID" prop="userId"> :title="!dataForm.id ? $t('add') : $t('update')"
<el-input v-model="dataForm.userId" placeholder="用户ID"></el-input> :close-on-click-modal="false"
</el-form-item> :close-on-press-escape="false"
<el-form-item label="反馈类型" prop="feedbackType"> >
<el-input v-model="dataForm.feedbackType" placeholder="反馈类型;1,反馈意见;2,控告申诉;3,代表委员有话说"></el-input> <el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '120px'"
>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item
label="用户"
prop="userId"
>
<el-input
v-model="dataForm.userId"
placeholder="用户ID"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
</el-col>
</el-row>
<el-form-item
label="反馈类型"
prop="feedbackType"
>
<el-input
v-model="dataForm.feedbackType"
placeholder="反馈类型;1,反馈意见;2,控告申诉;3,代表委员有话说"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="意见类别" prop="optionStatus"> <el-form-item
<el-input v-model="dataForm.optionStatus" placeholder="意见类别"></el-input> label="意见类别"
prop="optionStatus"
>
<el-input
v-model="dataForm.optionStatus"
placeholder="意见类别"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="意见、申诉内容" prop="content"> <el-form-item
<el-input v-model="dataForm.content" placeholder="意见、申诉内容"></el-input> label="意见、申诉内容"
prop="content"
>
<el-input
v-model="dataForm.content"
placeholder="意见、申诉内容"
type="textarea"
rows="3"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
export default { export default {
data () { data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
userId: '', userId: "",
feedbackType: '', feedbackType: "",
optionStatus: '', optionStatus: "",
content: '', content: "",
createDate: '' createDate: "",
} },
} };
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
userId: [ userId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
feedbackType: [ feedbackType: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
optionStatus: [ optionStatus: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
content: [ content: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}, },
// 获取信息 // 获取信息
getInfo () { getInfo() {
this.$http.get(`/fhjw/fhjwfeedback/${this.dataForm.id}`).then(({ data: res }) => { this.$http
if (res.code !== 0) { .get(`/fhjw/fhjwfeedback/${this.dataForm.id}`)
return this.$message.error(res.msg) .then(({ data: res }) => {
} if (res.code !== 0) {
this.dataForm = { return this.$message.error(res.msg);
...this.dataForm, }
...res.data this.dataForm = {
} ...this.dataForm,
}).catch(() => {}) ...res.data,
};
})
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.$refs["dataForm"].validate((valid) => {
return false if (!valid) {
} return false;
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/fhjwfeedback/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} }
this.$message({ this.$http[!this.dataForm.id ? "post" : "put"](
message: this.$t('prompt.success'), "/fhjw/fhjwfeedback/",
type: 'success', this.dataForm
duration: 500, )
onClose: () => { .then(({ data: res }) => {
this.visible = false if (res.code !== 0) {
this.$emit('refreshDataList') return this.$message.error(res.msg);
} }
}) this.$message({
}).catch(() => {}) message: this.$t("prompt.success"),
}) type: "success",
}, 1000, { 'leading': true, 'trailing': false }) duration: 500,
} onClose: () => {
} this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
<template>
<el-dialog
:visible.sync="visible"
title="详情"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '120px'"
>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item
label="用户"
prop="userId"
>
<el-input
v-model="dataForm.userId"
placeholder="用户"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="反馈类型"
prop="feedbackType"
>
<!-- <template slot-scope="scope">
<span v-if="dataForm.feedbackType==1">反馈意见</span>
<span v-if="dataForm.feedbackType==2">控告申诉</span>
<span v-if="dataForm.feedbackType==3">代表委员有话说</span>
</template> -->
<el-input
v-model="feedbackType"
readonly
placeholder="反馈类型;1,反馈意见;2,控告申诉;3,代表委员有话说"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-form-item
label="意见类别"
prop="optionStatus"
>
<el-input
v-model="dataForm.optionStatus"
readonly
placeholder="意见类别"
></el-input>
</el-form-item>
<el-form-item
label="意见、申诉内容"
prop="content"
>
<el-input
v-model="dataForm.content"
placeholder="意见、申诉内容"
readonly
type="textarea"
rows="3"
></el-input>
</el-form-item>
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<!-- <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button> -->
</template>
</el-dialog>
</template>
<script>
import debounce from "lodash/debounce";
export default {
data() {
return {
visible: false,
dataForm: {
id: "",
userId: "",
feedbackType: "",
optionStatus: "",
content: "",
createDate: "",
},
feedbackType: "",
};
},
methods: {
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo();
}
});
},
// 获取信息
getInfo() {
this.$http
.get(`/fhjw/fhjwfeedback/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
this.feedbackType =
this.dataForm.feedbackType == 1
? "反馈意见"
: this.dataForm.feedbackType == 2
? "控告申诉"
: "代表委员有话说";
})
.catch(() => {});
},
},
};
</script>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhjwfeedback}"> <div class="mod-fhjw__fhjwfeedback}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item> <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> <el-input
v-model="dataForm.content"
placeholder="意见、申诉内容"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <!-- <el-input
v-model="dataForm.feedbackType"
placeholder="意见、申诉内容"
clearable
></el-input> -->
<el-select
v-model="dataForm.feedbackType"
placeholder="请选择反馈类型"
clearable
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwfeedback:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-button
v-if="$hasPermission('fhjw:fhjwfeedback:save')"
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwfeedback:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button
v-if="$hasPermission('fhjw:fhjwfeedback:delete')"
type="danger"
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> :data="dataList"
<el-table-column prop="userId" label="用户ID" header-align="center" align="center"></el-table-column> border
<el-table-column prop="feedbackType" label="反馈类型" header-align="center" align="center"></el-table-column> @selection-change="dataListSelectionChangeHandle"
<el-table-column prop="optionStatus" label="意见类别" header-align="center" align="center"></el-table-column> style="width: 100%;"
<el-table-column prop="content" label="意见、申诉内容" header-align="center" align="center"></el-table-column> >
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> <el-table-column
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<!-- <el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> -->
<el-table-column
prop="content"
label="意见、申诉内容"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="feedbackType"
label="反馈类型"
header-align="center"
align="center"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:fhjwfeedback:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <span v-if="scope.row.feedbackType==1">反馈意见</span>
<el-button v-if="$hasPermission('fhjw:fhjwfeedback:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> <span v-if="scope.row.feedbackType==2">控告申诉</span>
<span v-if="scope.row.feedbackType==3">代表委员有话说</span>
</template>
</el-table-column>
<el-table-column
prop="optionStatus"
label="意见类别"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="userName"
label="用户"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="detailHandle(scope.row.id)"
>详情</el-button>
<el-button
v-if="$hasPermission('fhjw:fhjwfeedback:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -40,35 +140,75 @@ ...@@ -40,35 +140,75 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
<detail
v-if="detailVisible"
ref="detail"
@refreshDataList="getDataList"
></detail>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './fhjwfeedback-add-or-update' import AddOrUpdate from "./fhjwfeedback-add-or-update";
import Detail from "./fhjwfeedback-detail";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhjwfeedback/page', getDataListURL: "/fhjw/fhjwfeedback/page",
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/fhjwfeedback/export', exportURL: "/fhjw/fhjwfeedback/export",
deleteURL: '/fhjw/fhjwfeedback', deleteURL: "/fhjw/fhjwfeedback",
deleteIsBatch: true deleteIsBatch: true,
}, },
detailVisible: false,
dataForm: { dataForm: {
id: '' id: "",
} content: "",
} feedbackType: "",
},
options: [
{
value: 1,
label: "反馈意见",
},
{
value: 2,
label: "控告申诉",
},
{
value: 3,
label: "代表委员有话说",
},
],
value: "",
};
},
methods: {
detailHandle(id) {
console.log(id);
this.detailVisible = true;
this.$nextTick(() => {
this.$refs.detail.dataForm.id = id;
this.$refs.detail.init();
});
},
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
} Detail,
} },
};
</script> </script>
<template> <template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> <el-dialog
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> :visible.sync="visible"
<el-form-item label="问卷模版ID" prop="tempId"> :title="!dataForm.id ? $t('add') : $t('update')"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"
>
<!-- <el-form-item label="问卷模版ID" prop="tempId">
<el-input v-model="dataForm.tempId" placeholder="问卷模版ID"></el-input> <el-input v-model="dataForm.tempId" placeholder="问卷模版ID"></el-input>
</el-form-item> -->
<el-form-item
label="问题描述"
prop="question"
>
<el-input
v-model="dataForm.question"
placeholder="问题描述"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="问题描述" prop="question"> </el-form>
<el-input v-model="dataForm.question" placeholder="问题描述"></el-input>
</el-form-item>
</el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
export default { export default {
data () { props: ["tempId"],
data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
creator: '', creator: "",
createDate: '', createDate: "",
tempId: '', tempId: "",
question: '' question: "",
} },
} };
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
tempId: [ tempId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
question: [ question: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}, },
// 获取信息 // 获取信息
getInfo () { getInfo() {
this.$http.get(`/fhjw/fhjwquestion/${this.dataForm.id}`).then(({ data: res }) => { this.$http
if (res.code !== 0) { .get(`/fhjw/fhjwquestion/${this.dataForm.id}`)
return this.$message.error(res.msg) .then(({ data: res }) => {
} if (res.code !== 0) {
this.dataForm = { return this.$message.error(res.msg);
...this.dataForm, }
...res.data this.dataForm = {
} ...this.dataForm,
}).catch(() => {}) ...res.data,
};
})
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.dataForm.tempId = this.tempId;
return false this.$refs["dataForm"].validate((valid) => {
} if (!valid) {
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/fhjwquestion/', this.dataForm).then(({ data: res }) => { return false;
if (res.code !== 0) {
return this.$message.error(res.msg)
} }
this.$message({
message: this.$t('prompt.success'), this.$http[!this.dataForm.id ? "post" : "put"](
type: 'success', "/fhjw/fhjwquestion/",
duration: 500, this.dataForm
onClose: () => { )
this.visible = false .then(({ data: res }) => {
this.$emit('refreshDataList') if (res.code !== 0) {
} return this.$message.error(res.msg);
}) }
}).catch(() => {}) this.$message({
}) message: this.$t("prompt.success"),
}, 1000, { 'leading': true, 'trailing': false }) type: "success",
} duration: 500,
} onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhjwquestion}"> <div class="mod-fhjw__fhjwquestion}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
<el-form-item> :inline="true"
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> :model="dataForm"
@keyup.enter.native="getDataList()"
>
<!-- <el-form-item>
<el-input
v-model="dataForm.question"
placeholder="问题描述"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item> -->
<!-- <el-form-item>
<el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwquestion:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
</el-form-item> type="danger"
<el-form-item> @click="deleteHandle()"
<el-button v-if="$hasPermission('fhjw:fhjwquestion:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> >{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="id" label="主键id" header-align="center" align="center"></el-table-column> :data="dataList"
<el-table-column prop="creator" label="创建者" header-align="center" align="center"></el-table-column> border
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> @selection-change="dataListSelectionChangeHandle"
<el-table-column prop="tempId" label="问卷模版ID" header-align="center" align="center"></el-table-column> style="width: 100%;"
<el-table-column prop="question" label="问题描述" header-align="center" align="center"> >
<template slot-scope="scope"> <el-table-column
<el-button type="text" @click="childHandle(scope.row)">{{ scope.row.question }}</el-button> type="selection"
</template> header-align="center"
align="center"
width="50"
></el-table-column>
<!-- <el-table-column
prop="id"
label="主键id"
header-align="center"
align="center"
></el-table-column> -->
<el-table-column
prop="question"
label="问题描述"
header-align="center"
align="center"
>
<template slot-scope="scope">
<el-button
type="text"
@click="childHandle(scope.row)"
>{{ scope.row.question }}</el-button>
</template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> <!-- <el-table-column
prop="creator"
label="创建者"
header-align="center"
align="center"
></el-table-column> -->
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<!-- <el-table-column
prop="tempId"
label="问卷模版ID"
header-align="center"
align="center"
></el-table-column> -->
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:fhjwquestion:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button
<el-button v-if="$hasPermission('fhjw:fhjwquestion:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>修改</el-button>
<el-button
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -43,52 +117,63 @@ ...@@ -43,52 +117,63 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
:tempId="tempId"
@refreshDataList="getDataList"
></add-or-update>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './fhjwquestion-add-or-update' import AddOrUpdate from "./fhjwquestion-add-or-update";
import { addDynamicRoute } from '@/router' import { addDynamicRoute } from "@/router";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhjwquestion/page', getDataListURL:
"/fhjw/fhjwquestion/page?tempId=" + this.$route.params.dictTypeId,
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/fhjwquestion/export', exportURL: "/fhjw/fhjwquestion/export",
deleteURL: '/fhjw/fhjwquestion', deleteURL: "/fhjw/fhjwquestion",
deleteIsBatch: true deleteIsBatch: true,
}, },
dataForm: { dataForm: {
id: '' id: "",
} question: "",
} },
tempId: this.$route.params.dictTypeId,
};
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
}, },
methods: { methods: {
// 子级 // 子级
childHandle (row) { childHandle(row) {
console.log(row);
// 路由参数 // 路由参数
const routeParams = { const routeParams = {
routeName: `${this.$route.name}__${row.id}`, routeName: `${this.$route.name}__${row.id}`,
title: `${this.$route.meta.title} - ${row.question}`, title: `${this.$route.meta.title} - ${row.question}`,
path: 'fhjw/fhjwanswer', path: "fhjw/fhjwanswer",
params: { params: {
dictTypeId: row.id dictTypeId: row.id,
} questionName: row.question,
} },
};
// 动态路由 // 动态路由
addDynamicRoute(routeParams, this.$router) addDynamicRoute(routeParams, this.$router);
} },
} },
} };
</script> </script>
<template>
<el-card
shadow="never"
class="aui-card--fill"
>
<!-- <span class="label">筛选</span>
<el-date-picker
class="date-val"
v-model="dateVal"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
>
</el-date-picker>
<el-button>查询</el-button> -->
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item>
<el-input
v-model="dataForm.department"
placeholder="部门名称"
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-date-picker
class="date-val"
v-model="dataForm.dateVal"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
</el-form>
<div class="titleline">
<div class="left">
<img
src="../../../assets/img/logo_tj.png"
alt=""
style="width:20px;height:20px"
>
意见统计
</div>
<div class="right">
<img
src="../../../assets/img/logo_tj.png"
alt=""
style="width:20px;height:20px"
>
代表委员意见统计
</div>
</div>
<div class="bottom">
<!-- <div
ref="chartpie1"
style="width:50%;height:250px;"
></div> -->
<div style="flex:1;transform: translate3d(0, -10%, 0);">
<Echarts
:options="optionsComment"
height="300px"
width="100%"
/>
</div>
<div style="flex:1;transform: translate3d(0, -10%, 0);">
<Echarts
:options="optionsDaibiao"
height="300px"
width="100%"
/>
</div>
<!-- <div
ref="chartpie2"
style="width:50%;height:250px"
></div> -->
</div>
<div class="bottom">
<!-- <div
ref="chartzhuzhuang"
style="width:100%;height:375px;"
></div> -->
<Echarts
:options="optionsAll"
height="375px"
width="100%"
/>
</div>
</el-card>
</template>
<script>
import Echarts from "../../../components/echarts.vue";
export default {
name: "fhjwstatistical",
components: { Echarts },
data() {
return {
dataForm: {
dateVal: "",
department: "",
},
optionsComment: {},
optionsDaibiao: {},
optionsAll: {},
};
},
methods: {
getPie1() {
this.optionsComment = {
/* title: {
text: "天气情况统计",
subtext: "虚构数据",
left: "center",
}, */
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)",
},
legend: {
bottom: 0,
left: "center",
data: [
"反映拖延消极办案",
"反映违规不当办案",
"反映办案不廉或作风不正",
"反映存在插手干预案件办理",
"反映其他方面问题",
],
},
series: [
{
type: "pie",
radius: "70%",
center: ["50%", "50%"],
selectedMode: "single",
data: [
{ value: 1548, name: "反映拖延消极办案" },
{ value: 735, name: "反映违规不当办案" },
{ value: 510, name: "反映办案不廉或作风不正" },
{ value: 434, name: "反映存在插手干预案件办理" },
{ value: 335, name: "反映其他方面问题" },
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
};
},
getPie2() {
this.optionsDaibiao = {
/* title: {
text: "天气情况统计",
subtext: "虚构数据",
left: "center",
}, */
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)",
},
legend: {
bottom: 0,
left: "center",
data: [
"反映拖延消极办案",
"反映违规不当办案",
"反映办案不廉或作风不正",
"反映存在插手干预案件办理",
"反映其他方面问题",
],
},
series: [
{
type: "pie",
radius: "70%",
center: ["50%", "50%"],
selectedMode: "single",
data: [
{ value: 1548, name: "反映拖延消极办案" },
{ value: 735, name: "反映违规不当办案" },
{ value: 510, name: "反映办案不廉或作风不正" },
{ value: 434, name: "反映存在插手干预案件办理" },
{ value: 335, name: "反映其他方面问题" },
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
};
},
getZhuzhuang() {
this.optionsAll = {
title: {
text: "反馈统计",
left: "center",
},
xAxis: {
type: "category",
data: ["控告申诉", "意见反馈", "代表委员有话说"],
},
yAxis: {
type: "value",
},
series: [
{
label: {
show: true,
position: "top",
},
data: [120, 200, 150],
type: "bar",
},
],
};
},
},
created() {
this.getPie1();
this.getPie2();
this.getZhuzhuang();
},
mounted() {},
};
</script>
<style lang="less" scoped>
.label,
.date-val {
margin-right: 10px;
}
.titleline {
display: flex;
line-height: 50px;
font-size: 18px;
border-bottom: 1px solid #eee;
.left {
width: 50%;
}
.right {
width: 50%;
}
}
.bottom {
display: flex;
margin-top: 20px;
}
</style>
\ No newline at end of file
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhjwtemp}"> <div class="mod-fhjw__fhjwtemp}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<el-form-item> <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> <el-input
v-model="dataForm.tempName"
placeholder="问卷名称"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button
v-if="$hasPermission('fhjw:fhjwtemp:save')"
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:fhjwtemp:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
</el-form-item> v-if="$hasPermission('fhjw:fhjwtemp:delete')"
<el-form-item> type="danger"
<el-button v-if="$hasPermission('fhjw:fhjwtemp:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> @click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="tempName" label="问卷名称" header-align="center" align="center"> :data="dataList"
<template slot-scope="scope"> border
<el-button type="text" @click="childHandle(scope.row)">{{ scope.row.tempName }}</el-button> @selection-change="dataListSelectionChangeHandle"
</template> style="width: 100%;"
>
<el-table-column
type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="tempName"
label="问卷名称"
header-align="center"
align="center"
>
<template slot-scope="scope">
<el-button
type="text"
@click="childHandle(scope.row)"
>{{ scope.row.tempName }}</el-button>
</template>
</el-table-column> </el-table-column>
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> <el-table-column
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:fhjwtemp:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button
<el-button v-if="$hasPermission('fhjw:fhjwtemp:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> v-if="$hasPermission('fhjw:fhjwtemp:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button>
<el-button
v-if="$hasPermission('fhjw:fhjwtemp:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -40,52 +102,58 @@ ...@@ -40,52 +102,58 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './fhjwtemp-add-or-update' import AddOrUpdate from "./fhjwtemp-add-or-update";
import { addDynamicRoute } from '@/router' import { addDynamicRoute } from "@/router";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhjwtemp/page', getDataListURL: "/fhjw/fhjwtemp/page",
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/fhjwtemp/export', exportURL: "/fhjw/fhjwtemp/export",
deleteURL: '/fhjw/fhjwtemp', deleteURL: "/fhjw/fhjwtemp",
deleteIsBatch: true deleteIsBatch: true,
}, },
dataForm: { dataForm: {
id: '' id: "",
} tempName: "",
} },
};
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
}, },
methods: { methods: {
// 子级 // 子级
childHandle (row) { childHandle(row) {
// 路由参数 // 路由参数
const routeParams = { const routeParams = {
routeName: `${this.$route.name}__${row.id}`, routeName: `${this.$route.name}__${row.id}`,
title: `${this.$route.meta.title} - ${row.tempName}`, title: `${this.$route.meta.title} - ${row.tempName}`,
path: 'fhjw/fhjwquestion', path: "fhjw/fhjwquestion",
params: { params: {
dictTypeId: row.id dictTypeId: row.id,
} },
} };
// 动态路由 // 动态路由
addDynamicRoute(routeParams, this.$router) addDynamicRoute(routeParams, this.$router);
} },
} },
} };
</script> </script>
<template> <template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> <el-dialog
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> :visible.sync="visible"
<el-form-item label="角色名称" prop="name"> :title="!dataForm.id ? $t('add') : $t('update')"
<el-input v-model="dataForm.name" placeholder="角色名称"></el-input> :close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"
>
<el-form-item
label="角色名称"
prop="name"
>
<el-input
v-model="dataForm.name"
placeholder="角色名称"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="问卷模版ID" prop="tempId"> <el-form-item
<el-input v-model="dataForm.tempId" placeholder="问卷模版ID"></el-input> label="问卷模版"
</el-form-item> prop="tempId"
<el-form-item label="备注" prop="remark"> >
<el-input v-model="dataForm.remark" placeholder="备注"></el-input> <!-- <el-input v-model="dataForm.tempName" placeholder="问卷模版"></el-input> -->
<!-- <el-input v-model="dataForm.userRole" placeholder="案件ID"></el-input> -->
<el-select
style="width:100%"
v-model="dataForm.tempId"
placeholder="请选择所属权限"
>
<el-option
v-for="item in options"
:key="item.id"
:label="item.tempName"
:value="item.id"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
</el-form>
<!-- <el-form-item
label="备注"
prop="remark"
>
<el-input
v-model="dataForm.remark"
placeholder="备注"
></el-input>
</el-form-item> -->
</el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
export default { export default {
data () { data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
name: '', name: "",
tempId: '', tempId: "",
creator: '', creator: "",
createDate: '', createDate: "",
updater: '', updater: "",
updateDate: '', updateDate: "",
remark: '' remark: "",
} tempName: "",
} },
options: [],
};
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
name: [ name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
tempId: [ tempId: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) this.getAllTemp();
});
},
getAllTemp() {
this.$http
.get("/fhjw/fhjwtemp/getAllTemp")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.options = res.data;
})
.catch(() => {});
}, },
// 获取信息 // 获取信息
getInfo () { getInfo() {
this.$http.get(`/fhjw/role/${this.dataForm.id}`).then(({ data: res }) => { this.$http
if (res.code !== 0) { .get(`/fhjw/role/${this.dataForm.id}`)
return this.$message.error(res.msg) .then(({ data: res }) => {
} if (res.code !== 0) {
this.dataForm = { return this.$message.error(res.msg);
...this.dataForm, }
...res.data this.dataForm = {
} ...this.dataForm,
}).catch(() => {}) ...res.data,
};
})
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.$refs["dataForm"].validate((valid) => {
return false if (!valid) {
} return false;
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/role/', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} }
this.$message({ console.log("aa", this.dataForm);
message: this.$t('prompt.success'), this.$http[!this.dataForm.id ? "post" : "put"](
type: 'success', "/fhjw/role/",
duration: 500, this.dataForm
onClose: () => { )
this.visible = false .then(({ data: res }) => {
this.$emit('refreshDataList') if (res.code !== 0) {
} return this.$message.error(res.msg);
}) }
}).catch(() => {}) this.$message({
}) message: this.$t("prompt.success"),
}, 1000, { 'leading': true, 'trailing': false }) type: "success",
} duration: 500,
} onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__role}"> <div class="mod-fhjw__role}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
<el-form-item> :inline="true"
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> :model="dataForm"
@keyup.enter.native="getDataList()"
>
<!-- <el-form-item>
<el-input
v-model="dataForm.id"
placeholder="id"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button
</el-form-item> type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:role:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
v-if="$hasPermission('fhjw:role:save')"
type="primary"
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('fhjw:role:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button
v-if="$hasPermission('fhjw:role:delete')"
type="danger"
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="name" label="角色名称" header-align="center" align="center"></el-table-column> :data="dataList"
<el-table-column prop="tempName" label="问卷模版" header-align="center" align="center"></el-table-column> border
<el-table-column prop="creator" label="创建者" header-align="center" align="center"></el-table-column> @selection-change="dataListSelectionChangeHandle"
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> style="width: 100%;"
<el-table-column prop="updater" label="更新者" header-align="center" align="center"></el-table-column> >
<el-table-column prop="updateDate" label="更新时间" header-align="center" align="center"></el-table-column> <el-table-column
<el-table-column prop="remark" label="备注" header-align="center" align="center"></el-table-column> type="selection"
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> header-align="center"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="name"
label="角色名称"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="tempName"
label="问卷模版"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="creator"
label="创建者"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<!-- <el-table-column prop="updater" label="更新者" header-align="center" align="center"></el-table-column>
<el-table-column prop="updateDate" label="更新时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="remark" label="备注" header-align="center" align="center"></el-table-column>-->
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:role:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button
<el-button v-if="$hasPermission('fhjw:role:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> v-if="$hasPermission('fhjw:role:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button>
<el-button
v-if="$hasPermission('fhjw:role:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -41,35 +110,40 @@ ...@@ -41,35 +110,40 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './role-add-or-update' import AddOrUpdate from "./role-add-or-update";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/role/page', getDataListURL: "/fhjw/role/page",
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/role/export', exportURL: "/fhjw/role/export",
deleteURL: '/fhjw/role', deleteURL: "/fhjw/role",
deleteIsBatch: true deleteIsBatch: true,
}, },
dataForm: { dataForm: {
id: '' id: "",
} },
} };
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
} },
} };
</script> </script>
<template> <template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false"> <el-dialog
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" :label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> :visible.sync="visible"
<el-form-item label="用户名" prop="username"> :title="!dataForm.id ? $t('add') : $t('update')"
<el-input v-model="dataForm.username" placeholder="用户名"></el-input> :close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"
>
<el-form-item
label="用户名"
prop="username"
>
<el-input
v-model="dataForm.username"
placeholder="用户名"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="手机号" prop="mobile"> <el-form-item
<el-input v-model="dataForm.mobile" placeholder="手机号"></el-input> label="手机号"
prop="mobile"
>
<el-input
v-model="dataForm.mobile"
placeholder="手机号"
></el-input>
</el-form-item> </el-form-item>
<el-form-item label="身份证号" prop="userIdno">
<el-input v-model="dataForm.userIdno" placeholder="身份证号"></el-input> <el-form-item
label="所属权限"
prop="userRole"
>
<!-- <el-input v-model="dataForm.userRole" placeholder="案件ID"></el-input> -->
<el-select
style="width:100%"
v-model="dataForm.userRole"
placeholder="请选择所属权限"
@change="selectChanged"
>
<el-option
v-for="item in options"
:key="item.name"
:label="item.name"
:value="item.name"
>
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="案件ID" prop="caseId">
<el-input v-model="dataForm.caseId" placeholder="案件ID"></el-input> <el-form-item
label="身份证号"
prop="userIdno"
>
<el-input
v-model="dataForm.userIdno"
placeholder="身份证号"
></el-input>
</el-form-item> </el-form-item>
</el-form>
</el-form>
<template slot="footer"> <template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> <el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
export default { export default {
data () { data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
id: '', id: "",
username: '', username: "",
mobile: '', mobile: "",
password: '', password: "",
userIdno: '', userIdno: "",
caseId: '', userRole: "",
createDate: '' /* caseId: '', */
} createDate: "",
} },
options: [],
};
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
username: [ username: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
mobile: [ mobile: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
password: [ password: [
{ required: false, message: this.$t('validate.required'), trigger: 'blur' } {
required: false,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
userIdno: [ userIdno: [
{ required: false, message: this.$t('validate.required'), trigger: 'blur' } {
required: false,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
caseId: [ userRole: [
{ required: false, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) this.getAllRole();
});
}, },
// 获取信息 selectChanged(value) {
getInfo () { this.options.forEach((ele) => {
this.$http.get(`/fhjw/user/${this.dataForm.id}`).then(({ data: res }) => { if (ele.name == value) {
if (res.code !== 0) { this.dataForm.userRoleId = ele.id;
return this.$message.error(res.msg)
}
this.dataForm = {
...this.dataForm,
...res.data
} }
}).catch(() => {}) });
}, },
// 表单提交 // 获取信息
dataFormSubmitHandle: debounce(function () { getInfo() {
this.$refs['dataForm'].validate((valid) => { this.$http
if (!valid) { .get(`/fhjw/user/${this.dataForm.id}`)
return false .then(({ data: res }) => {
} if (res.code !== 0) {
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/user/', this.dataForm).then(({ data: res }) => { return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data,
};
})
.catch(() => {});
},
getAllRole() {
this.$http
.get("/fhjw/role/getAllRole")
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.$message({ this.options = res.data;
message: this.$t('prompt.success'), })
type: 'success', .catch(() => {});
duration: 500, },
onClose: () => { // 表单提交
this.visible = false dataFormSubmitHandle: debounce(
this.$emit('refreshDataList') function () {
} this.$refs["dataForm"].validate((valid) => {
}) if (!valid) {
}).catch(() => {}) return false;
}) }
}, 1000, { 'leading': true, 'trailing': false }) console.log(this.dataForm);
} this.$http[!this.dataForm.id ? "post" : "put"](
} "/fhjw/user/",
this.dataForm
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false;
this.$emit("refreshDataList");
},
});
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__user}"> <div class="mod-fhjw__user}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
>
<!-- <el-form-item>
<el-input
v-model="dataForm.username"
placeholder="用户名"
clearable
></el-input>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input> <el-input
v-model="dataForm.mobile"
placeholder="手机号"
clearable
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="info" @click="exportHandle()">{{ $t('export') }}</el-button> <el-button
</el-form-item> v-if="$hasPermission('fhjw:user:save')"
<el-form-item> type="primary"
<el-button v-if="$hasPermission('fhjw:user:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> @click="addOrUpdateHandle()"
</el-form-item> >{{ $t('add') }}</el-button>
<el-form-item>
<el-button v-if="$hasPermission('fhjw:user:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-button
v-if="$hasPermission('fhjw:user:delete')"
type="danger"
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> -->
</el-form> </el-form>
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;"> <el-table
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> v-loading="dataListLoading"
<el-table-column prop="username" label="用户名" header-align="center" align="center"></el-table-column> :data="dataList"
<el-table-column prop="mobile" label="手机号" header-align="center" align="center"></el-table-column> border
<el-table-column prop="userIdno" label="身份证号" header-align="center" align="center"></el-table-column> @selection-change="dataListSelectionChangeHandle"
<el-table-column prop="userRole" label="所属权限" header-align="center" align="center"></el-table-column> style="width: 100%;"
<el-table-column prop="caseId" label="案件ID" header-align="center" align="center"></el-table-column> >
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column> <el-table-column
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> type="selection"
header-align="center"
align="center"
width="50"
></el-table-column>
<el-table-column
prop="username"
label="用户名"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="mobile"
label="手机号"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="userIdno"
label="身份证号"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="userRole"
label="所属权限"
header-align="center"
align="center"
></el-table-column>
<!-- <el-table-column
prop="caseId"
label="案件ID"
header-align="center"
align="center"
></el-table-column> -->
<el-table-column
prop="createDate"
label="创建时间"
header-align="center"
align="center"
></el-table-column>
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="$hasPermission('fhjw:user:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button
<el-button v-if="$hasPermission('fhjw:user:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> v-if="$hasPermission('fhjw:user:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button>
<!-- <el-button
v-if="$hasPermission('fhjw:user:delete')"
type="text"
size="small"
@click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -40,35 +127,41 @@ ...@@ -40,35 +127,41 @@
:total="total" :total="total"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle" @size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"> @current-change="pageCurrentChangeHandle"
>
</el-pagination> </el-pagination>
<!-- 弹窗, 新增 / 修改 --> <!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> <add-or-update
v-if="addOrUpdateVisible"
ref="addOrUpdate"
@refreshDataList="getDataList"
></add-or-update>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from './user-add-or-update' import AddOrUpdate from "./user-add-or-update";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/user/page', getDataListURL: "/fhjw/user/page",
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/user/export', exportURL: "/fhjw/user/export",
deleteURL: '/fhjw/user', deleteURL: "/fhjw/user",
deleteIsBatch: true deleteIsBatch: true,
}, },
dataForm: { dataForm: {
id: '' id: "",
} mobile: "",
} },
};
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
} },
} };
</script> </script>
<template> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card
<div style="font-weight: 600;text-align: center;"> shadow="never"
欢迎登陆奉化检务综合管理系统 class="aui-card--fill"
>
<!-- <div class="title">
欢迎登陆检察阳光码管理系统
</div> -->
<div class="top">
<div
class="item"
v-for="item in list"
:key="item.id"
>
<div class="item-content">
<img
src="../../assets/img/member_icon_54.png"
alt=""
class="title-img"
>
<div class="right">
<div class="num">{{item.num}}</div>
<div class="title">{{item.title}}</div>
</div>
</div>
</div>
</div>
<div class="titleline">
<div class="left">
<img
src="../../assets/img/logo_tj.png"
alt=""
style="width:20px;height:20px"
>
部门办案情况
</div>
<div class="right">
<img
src="../../assets/img/logo_tj.png"
alt=""
style="width:20px;height:20px"
>
部门办案情况统计
</div>
</div>
<div class="bottom">
<!-- <div
ref="chartpie"
style="width:40%;height:470px;flex:3.5"
></div> -->
<div style="width:40%;transform: translate3d(0, -10%, 0);">
<Echarts
:options="optionHandlingSituation"
height="470px"
width="100%"
/>
</div>
<div style="width:60%;transform: translate3d(0, -10%, 0);">
<Echarts
:options="optionHandlingSituationZhe"
height="470px"
width="100%"
/>
</div> </div>
<!-- <div
ref="chartzhexian"
style="width:60%;height:470px;flex:6.5"
></div> -->
</div>
</el-card> </el-card>
</template> </template>
<script> <script>
import Echarts from "../../components/echarts.vue";
export default { export default {
data () { components: { Echarts },
data() {
return { return {
sysInfo: { optionHandlingSituation: {},
osName: '', optionHandlingSituationZhe: {},
osVersion: '', list: [
osArch: '', {
processors: 0, id: 1,
totalPhysical: 0, title: "第一检察部",
freePhysical: 0, num: 834,
memoryRate: 0, },
userLanguage: '', {
jvmName: '', id: 2,
javaVersion: '', title: "第二检察部",
javaHome: '', num: 307,
userDir: '', },
javaTotalMemory: 0, {
javaFreeMemory: 0, id: 3,
javaMaxMemory: 0, title: "第三检察部",
userName: '', num: 32,
systemCpuLoad: 0, },
userTimezone: '' {
} id: 4,
} title: "第四检察部",
num: 145,
},
{
id: 5,
title: "第五检察部",
num: 153,
},
{
id: 6,
title: "第六检察部",
num: 81,
},
{
id: 7,
title: "第七检察部",
num: 271,
},
{
id: 8,
title: "溪口检察部",
num: 8,
},
],
};
}, },
created () {
this.getSysInfo() created() {
// this.getSysInfo();
this.getPie();
this.getZhe();
}, },
mounted() {},
methods: { methods: {
getSysInfo () { getSysInfo() {
this.$http.get('/sys/info').then(({ data: res }) => { this.$http
if (res.code !== 0) { .get("/sys/info")
return this.$message.error(res.msg) .then(({ data: res }) => {
} if (res.code !== 0) {
this.sysInfo = res.data return this.$message.error(res.msg);
}).catch(() => {}) }
this.sysInfo = res.data;
})
.catch(() => {});
},
getPie() {
this.optionHandlingSituation = {
tooltip: {
trigger: "item",
formatter: "{a} <br/>{b} : {c} ({d}%)",
},
legend: {
bottom: 0,
left: "center",
data: [
"第一检察部",
"第二检察部",
"第三检察部",
"第四检察部",
"第五检察部",
"第六检察部",
"第七检察部",
"溪口检察部",
],
},
series: [
{
name: "占比",
type: "pie",
radius: "70%",
center: ["50%", "50%"],
selectedMode: "single",
data: [
{ value: 1548, name: "第一检察部" },
{ value: 735, name: "第二检察部" },
{ value: 510, name: "第三检察部" },
{ value: 434, name: "第四检察部" },
{ value: 335, name: "第五检察部" },
{ value: 335, name: "第六检察部" },
{ value: 335, name: "第七检察部" },
{ value: 335, name: "溪口检察部" },
],
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: "rgba(0, 0, 0, 0.5)",
},
},
},
],
};
},
getZhe() {
this.optionHandlingSituationZhe = {
/* title: {
text: "折线图堆叠",
}, */
tooltip: {
trigger: "axis",
},
legend: {
bottom: 0,
left: "center",
data: [
"第一检察部",
"第二检察部",
"第三检察部",
"第四检察部",
"第五检察部",
"第六检察部",
"第七检察部",
"溪口检察部",
],
},
grid: {
left: "5%",
right: "5%",
bottom: "10%",
containLabel: true,
},
/* toolbox: {
feature: {
saveAsImage: {},
},
}, */
xAxis: {
type: "category",
boundaryGap: false,
data: [
"2020-12",
"2021-01",
"2021-02",
"2021-03",
"2021-04",
"2021-05",
],
},
yAxis: {
type: "value",
axisLine: {
show: true,
},
},
series: [
{
name: "第一检察部",
type: "line",
stack: "总量",
data: [120, 132, 101, 134, 90, 230],
},
{
name: "第二检察部",
type: "line",
stack: "总量",
data: [220, 182, 191, 234, 290, 330],
},
{
name: "第三检察部",
type: "line",
stack: "总量",
data: [150, 232, 201, 154, 190, 330],
},
{
name: "第四检察部",
type: "line",
stack: "总量",
data: [320, 332, 301, 334, 390, 330],
},
{
name: "第五检察部",
type: "line",
stack: "总量",
data: [820, 932, 901, 934, 1290, 1330],
},
{
name: "第六检察部",
type: "line",
stack: "总量",
data: [320, 332, 301, 334, 390, 330],
},
{
name: "第七检察部",
type: "line",
stack: "总量",
data: [100, 200, 300, 500, 200, 100],
},
{
name: "溪口检察部",
type: "line",
stack: "总量",
data: [500, 100, 500, 200, 50, 10],
},
],
};
},
},
};
</script>
<style lang="less" scoped>
.top {
display: flex;
justify-content: space-between;
.item {
background: #4f96e1;
color: #fff;
display: flex;
width: 150px;
height: 90px;
text-align: center;
vertical-align: middle;
padding: 10px 10px 0;
border-radius: 8px;
position: relative;
.num {
font-size: 30px;
}
.item-content {
position: absolute;
width: 80%;
margin: 0 auto;
top: 50%;
transform: translate(0, -50%);
display: flex;
}
.title-img {
width: 40px;
height: 40px;
//vertical-align: middle;
}
.right {
margin-left: 10px;
text-align: right;
}
.title,
.num {
text-align: right;
} }
} }
} }
</script> .titleline {
display: flex;
line-height: 50px;
font-size: 18px;
margin-top: 35px;
border-bottom: 1px solid #eee;
.left {
width: 40%;
}
.right {
width: 60%;
}
}
.bottom {
width: 100%;
display: flex;
margin-top: 20px;
}
</style>
...@@ -3,51 +3,113 @@ ...@@ -3,51 +3,113 @@
<div class="aui-content__wrapper"> <div class="aui-content__wrapper">
<main class="aui-content"> <main class="aui-content">
<div class="login-header"> <div class="login-header">
<h2 class="login-brand">{{ $t('brand.lg') }}</h2> <!-- <h2 class="login-brand">{{ $t('brand.lg') }}</h2> -->
<img
src="../../assets/img/logo.png"
alt=""
>
</div> </div>
<div class="login-body"> <div class="login-body">
<h3 class="login-title">{{ $t('login.title') }}</h3> <h3 class="login-title">{{ $t('login.title') }}</h3>
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" status-icon> <el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
status-icon
>
<el-form-item> <el-form-item>
<el-select v-model="$i18n.locale" class="w-percent-100"> <el-select
<el-option v-for="(val, key) in i18nMessages" :key="key" :label="val._lang" :value="key"></el-option> v-model="$i18n.locale"
class="w-percent-100"
>
<el-option
v-for="(val, key) in i18nMessages"
:key="key"
:label="val._lang"
:value="key"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item prop="username"> <el-form-item prop="username">
<el-input v-model="dataForm.username" :placeholder="$t('login.username')"> <el-input
<span slot="prefix" class="el-input__icon"> v-model="dataForm.username"
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-user"></use></svg> :placeholder="$t('login.username')"
>
<span
slot="prefix"
class="el-input__icon"
>
<svg
class="icon-svg"
aria-hidden="true"
>
<use xlink:href="#icon-user"></use>
</svg>
</span> </span>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input v-model="dataForm.password" type="password" :placeholder="$t('login.password')"> <el-input
<span slot="prefix" class="el-input__icon"> v-model="dataForm.password"
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-lock"></use></svg> type="password"
:placeholder="$t('login.password')"
>
<span
slot="prefix"
class="el-input__icon"
>
<svg
class="icon-svg"
aria-hidden="true"
>
<use xlink:href="#icon-lock"></use>
</svg>
</span> </span>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item prop="captcha"> <el-form-item prop="captcha">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="14"> <el-col :span="14">
<el-input v-model="dataForm.captcha" :placeholder="$t('login.captcha')"> <el-input
<span slot="prefix" class="el-input__icon"> v-model="dataForm.captcha"
<svg class="icon-svg" aria-hidden="true"><use xlink:href="#icon-safetycertificate"></use></svg> :placeholder="$t('login.captcha')"
>
<span
slot="prefix"
class="el-input__icon"
>
<svg
class="icon-svg"
aria-hidden="true"
>
<use xlink:href="#icon-safetycertificate"></use>
</svg>
</span> </span>
</el-input> </el-input>
</el-col> </el-col>
<el-col :span="10" class="login-captcha"> <el-col
<img :src="captchaPath" @click="getCaptcha()"> :span="10"
class="login-captcha"
>
<img
:src="captchaPath"
@click="getCaptcha()"
>
</el-col> </el-col>
</el-row> </el-row>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="dataFormSubmitHandle()" class="w-percent-100">{{ $t('login.title') }}</el-button> <el-button
type="primary"
@click="dataFormSubmitHandle()"
class="w-percent-100"
>{{ $t('login.title') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<div class="login-footer"> <div class="login-footer">
<p>2020 © 浙江汇民网络技术有限公司</p> <p>2021 © 浙江汇民网络技术有限公司</p>
</div> </div>
</main> </main>
</div> </div>
...@@ -55,63 +117,82 @@ ...@@ -55,63 +117,82 @@
</template> </template>
<script> <script>
import Cookies from 'js-cookie' import Cookies from "js-cookie";
import debounce from 'lodash/debounce' import debounce from "lodash/debounce";
import { messages } from '@/i18n' import { messages } from "@/i18n";
import { getUUID } from '@/utils' import { getUUID } from "@/utils";
export default { export default {
data () { data() {
return { return {
i18nMessages: messages, i18nMessages: messages,
captchaPath: '', captchaPath: "",
dataForm: { dataForm: {
username: '', username: "",
password: '', password: "",
uuid: '', uuid: "",
captcha: '' captcha: "",
} },
} };
}, },
computed: { computed: {
dataRule () { dataRule() {
return { return {
username: [ username: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
password: [ password: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
captcha: [ captcha: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
] required: true,
} message: this.$t("validate.required"),
} trigger: "blur",
},
],
};
},
}, },
created () { created() {
this.getCaptcha() this.getCaptcha();
}, },
methods: { methods: {
// 获取验证码 // 获取验证码
getCaptcha () { getCaptcha() {
this.dataForm.uuid = getUUID() this.dataForm.uuid = getUUID();
this.captchaPath = `${window.SITE_CONFIG['apiURL']}/captcha?uuid=${this.dataForm.uuid}` this.captchaPath = `${window.SITE_CONFIG["apiURL"]}/captcha?uuid=${this.dataForm.uuid}`;
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
if (!valid) { this.$refs["dataForm"].validate((valid) => {
return false if (!valid) {
} return false;
this.$http.post('/login', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
this.getCaptcha()
return this.$message.error(res.msg)
} }
Cookies.set('token', res.data.token) this.$http
this.$router.replace({ name: 'home' }) .post("/login", this.dataForm)
}).catch(() => {}) .then(({ data: res }) => {
}) if (res.code !== 0) {
}, 1000, { 'leading': true, 'trailing': false }) this.getCaptcha();
} return this.$message.error(res.msg);
} }
Cookies.set("token", res.data.token);
this.$router.replace({ name: "home" });
})
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
* 配置参考: https://cli.vuejs.org/zh/config/ * 配置参考: https://cli.vuejs.org/zh/config/
*/ */
module.exports = { module.exports = {
lintOnSave: false,
publicPath: process.env.NODE_ENV === 'production' ? './' : '/', publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
chainWebpack: config => { chainWebpack: config => {
const svgRule = config.module.rule('svg') const svgRule = config.module.rule('svg')
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment