Commit d7285a00 authored by mengmeng's avatar mengmeng

Merge branch 'fwldev' into 'master'

Fwldev

See merge request !2
parents 588e6b44 821800af
...@@ -10128,9 +10128,9 @@ ...@@ -10128,9 +10128,9 @@
"dev": true "dev": true
}, },
"js-base64": { "js-base64": {
"version": "2.5.1", "version": "3.6.1",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.1.tgz",
"integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" "integrity": "sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ=="
}, },
"js-cookie": { "js-cookie": {
"version": "2.2.0", "version": "2.2.0",
...@@ -10143,6 +10143,11 @@ ...@@ -10143,6 +10143,11 @@
"integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
"dev": true "dev": true
}, },
"js-md5": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/js-md5/-/js-md5-0.7.3.tgz",
"integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
},
"js-message": { "js-message": {
"version": "1.0.5", "version": "1.0.5",
"resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz", "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz",
...@@ -15592,6 +15597,11 @@ ...@@ -15592,6 +15597,11 @@
"source-map": "^0.4.2" "source-map": "^0.4.2"
}, },
"dependencies": { "dependencies": {
"js-base64": {
"version": "2.6.4",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
},
"source-map": { "source-map": {
"version": "0.4.4", "version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
...@@ -16779,6 +16789,13 @@ ...@@ -16779,6 +16789,13 @@
"js-base64": "^2.1.9", "js-base64": "^2.1.9",
"source-map": "^0.5.6", "source-map": "^0.5.6",
"supports-color": "^3.2.3" "supports-color": "^3.2.3"
},
"dependencies": {
"js-base64": {
"version": "2.6.4",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
"integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
}
} }
}, },
"supports-color": { "supports-color": {
......
...@@ -25,7 +25,9 @@ ...@@ -25,7 +25,9 @@
"gulp-load-plugins": "^2.0.0", "gulp-load-plugins": "^2.0.0",
"gulp-rename": "^1.4.0", "gulp-rename": "^1.4.0",
"gulp-sass": "^4.0.2", "gulp-sass": "^4.0.2",
"js-base64": "^3.6.1",
"js-cookie": "^2.2.0", "js-cookie": "^2.2.0",
"js-md5": "^0.7.3",
"less": "^3.0.4", "less": "^3.0.4",
"less-loader": "^5.0.0", "less-loader": "^5.0.0",
"lodash": "^4.17.15", "lodash": "^4.17.15",
......
...@@ -10,8 +10,9 @@ ...@@ -10,8 +10,9 @@
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://192.168.10.129:8080/hmit-admin'; window.SITE_CONFIG['apiURL'] = 'http://10.55.125.88:8080/hmit-admin';
window.SITE_CONFIG['apiURL'] = 'http://119.3.50.187:8011/hmit-admin'; // api请求地址 //window.SITE_CONFIG['apiURL'] = 'http://119.3.50.187:8011/hmit-admin';
//window.SITE_CONFIG['apiURL'] = 'http://192.168.10.67:8080/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 自动赋值(默认,名称 === 路由名称 === 路由路径)
......
...@@ -15,20 +15,22 @@ export default { ...@@ -15,20 +15,22 @@ export default {
options: Object, options: Object,
height: String, height: String,
width: String, width: String,
// bage: String,
}, },
data() { data() {
return {}; return {
myChart: "",
};
}, },
methods: { methods: {
getEchart() { getEchart() {
const chart = this.$refs.chartpie; const chart = this.$refs.chartpie;
if (chart) { if (chart) {
const myChart = this.$echarts.init(chart); let myChart = this.$echarts.init(chart);
this.myChart = myChart;
console.log("aaaa", myChart);
//const myChart = echarts.init(chart, null, { renderer: "svg" }); //const myChart = echarts.init(chart, null, { renderer: "svg" });
const option = this.options; const option = this.options;
myChart.setOption(option); myChart.setOption(option, true);
window.addEventListener("resize", function () { window.addEventListener("resize", function () {
myChart.resize(); myChart.resize();
}); });
...@@ -39,11 +41,23 @@ export default { ...@@ -39,11 +41,23 @@ export default {
}); });
}); });
}, },
resize() {
this.myChart.resize();
},
rerender() {
this.myChart.setOption(this.options, true);
},
}, },
created() {}, created() {},
mounted() { mounted() {
// console.log("子组件接受到的", this.options);
this.getEchart(); this.getEchart();
}, },
watch: {
options(newval, oldval) {
this.myChart.setOption(newval, true);
},
},
}; };
</script> </script>
......
...@@ -20,6 +20,8 @@ import { hasPermission, getDictLabel } from '@/utils' ...@@ -20,6 +20,8 @@ import { hasPermission, getDictLabel } from '@/utils'
import cloneDeep from 'lodash/cloneDeep' import cloneDeep from 'lodash/cloneDeep'
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import md5 from 'js-md5';
Vue.prototype.$md5 = md5;
Vue.config.productionTip = false Vue.config.productionTip = false
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* 邮箱 * 邮箱
* @param {*} s * @param {*} s
*/ */
export function isEmail (s) { export function isEmail(s) {
return /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s) return /^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
} }
...@@ -10,15 +10,38 @@ export function isEmail (s) { ...@@ -10,15 +10,38 @@ export function isEmail (s) {
* 手机号码 * 手机号码
* @param {*} s * @param {*} s
*/ */
export function isMobile (s) { export function isMobile(s) {
return /^1[0-9]{10}$/.test(s) return /^1[0-9]{10}$/.test(s)
} }
/**
* shuzi
* @param {*} s
*/
export function isSpecial(s) {
// return /^(?!<script>){0,50}*$/.test(s)
return /^((?!<script>).){0,50}$/.test(s)
}
export function isSpecial2(s) {
return /^((?!<script>).){0,10}$/.test(s)
}
/**
* shuzi----
* @param {*} s
*/
export function isNumber(s) {
return /^[0-9]{0,11}$/.test(s)
}
/** /**
* 电话号码 * 电话号码
* @param {*} s * @param {*} s
*/ */
export function isPhone (s) { export function isPhone(s) {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s) return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
} }
...@@ -26,6 +49,6 @@ export function isPhone (s) { ...@@ -26,6 +49,6 @@ export function isPhone (s) {
* URL地址 * URL地址
* @param {*} s * @param {*} s
*/ */
export function isURL (s) { export function isURL(s) {
return /^http[s]?:\/\/.*/.test(s) return /^http[s]?:\/\/.*/.test(s)
} }
...@@ -4,94 +4,158 @@ ...@@ -4,94 +4,158 @@
:title="$t('updatePassword.title')" :title="$t('updatePassword.title')"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
:append-to-body="true"> :append-to-body="true"
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px"> >
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px"
>
<el-form-item :label="$t('updatePassword.username')"> <el-form-item :label="$t('updatePassword.username')">
<span>{{ $store.state.user.name }}</span> <span>{{ $store.state.user.name }}</span>
</el-form-item> </el-form-item>
<el-form-item prop="password" :label="$t('updatePassword.password')"> <el-form-item
<el-input v-model="dataForm.password" type="password" :placeholder="$t('updatePassword.password')"></el-input> prop="password"
:label="$t('updatePassword.password')"
>
<el-input
v-model="dataForm.password"
type="password"
:placeholder="$t('updatePassword.password')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="newPassword" :label="$t('updatePassword.newPassword')"> <el-form-item
<el-input v-model="dataForm.newPassword" type="password" :placeholder="$t('updatePassword.newPassword')"></el-input> prop="newPassword"
:label="$t('updatePassword.newPassword')"
>
<el-input
v-model="dataForm.newPassword"
type="password"
:placeholder="$t('updatePassword.newPassword')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="confirmPassword" :label="$t('updatePassword.confirmPassword')"> <el-form-item
<el-input v-model="dataForm.confirmPassword" type="password" :placeholder="$t('updatePassword.confirmPassword')"></el-input> prop="confirmPassword"
:label="$t('updatePassword.confirmPassword')"
>
<el-input
v-model="dataForm.confirmPassword"
type="password"
:placeholder="$t('updatePassword.confirmPassword')"
></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";
import { clearLoginInfo } from '@/utils' import { clearLoginInfo } from "@/utils";
export default { export default {
data () { data() {
return { return {
visible: false, visible: false,
dataForm: { dataForm: {
password: '', password: "",
newPassword: '', newPassword: "",
confirmPassword: '' confirmPassword: "",
} },
} };
}, },
computed: { computed: {
dataRule () { dataRule() {
var validateConfirmPassword = (rule, value, callback) => { var validateConfirmPassword = (rule, value, callback) => {
if (this.dataForm.newPassword !== value) { if (this.dataForm.newPassword !== value) {
return callback(new Error(this.$t('updatePassword.validate.confirmPassword'))) return callback(
new Error(this.$t("updatePassword.validate.confirmPassword"))
);
} }
callback() callback();
};
var validateNewPass = (rule, value, callback) => {
const reg =
/(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[\W])(?=.*[\S])^[0-9A-Za-z\S]{8,18}$/g;
if (!reg.test(value)) {
callback(new Error("密码应该为8-18位大小字母、数字、特殊字符组合"));
} else {
callback();
} }
};
return { return {
password: [ password: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
newPassword: [ newPassword: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
{ validator: validateNewPass, trigger: "blur" },
], ],
confirmPassword: [ confirmPassword: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }, {
{ validator: validateConfirmPassword, trigger: 'blur' } required: true,
] message: this.$t("validate.required"),
} trigger: "blur",
} },
{ validator: validateConfirmPassword, trigger: "blur" },
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
}) });
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
this.$refs["dataForm"].validate((valid) => {
if (!valid) { if (!valid) {
return false return false;
} }
this.$http.put('/sys/user/password', this.dataForm).then(({ data: res }) => { this.$http
.put("/sys/user/password", this.dataForm)
.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.$message({
message: this.$t('prompt.success'), message: this.$t("prompt.success"),
type: 'success', type: "success",
duration: 500, duration: 500,
onClose: () => { onClose: () => {
this.visible = false this.visible = false;
clearLoginInfo() clearLoginInfo();
this.$router.replace({ name: 'login' }) this.$router.replace({ name: "login" });
} },
}) });
}).catch(() => {})
}) })
}, 1000, { 'leading': true, 'trailing': false }) .catch(() => {});
} });
} },
1000,
{ leading: true, trailing: false }
),
},
};
</script> </script>
...@@ -5,20 +5,26 @@ ...@@ -5,20 +5,26 @@
> >
<div <div
class="aui-navbar__header" class="aui-navbar__header"
style="width:460px" style="width:375px"
> >
<h1 <h1
class="aui-navbar__brand" class="aui-navbar__brand"
@click="$router.push({ name: 'home' })" @click="$router.push({ name: 'home' })"
> >
<!-- <a <img
src="../assets/img/logo_icon.png"
alt=""
style="margin-right:5px;width:35px;height:39px;"
>
<a
style="letter-spacing:1px"
class="aui-navbar__brand-lg" class="aui-navbar__brand-lg"
href="javascript:;" href="javascript:;"
>{{ $t('brand.lg') }}</a> --> >{{ $t('brand.lg') }}</a>
<img <!-- <img
src="../assets/img/logo.png" src="../assets/img/logo.png"
alt="" alt=""
> > -->
<a <a
class="aui-navbar__brand-mini" class="aui-navbar__brand-mini"
......
<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="更新者" prop="updater"> <!-- <el-form-item label="更新者" prop="updater">
<el-input v-model="dataForm.updater" placeholder="更新者"></el-input> <el-input v-model="dataForm.updater" placeholder="更新者"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="更新时间" prop="updateDate"> <el-form-item label="更新时间" prop="updateDate">
<el-input v-model="dataForm.updateDate" placeholder="更新时间"></el-input> <el-input v-model="dataForm.updateDate" 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: "",
name: '', name: "",
creator: '', creator: "",
createDate: '', createDate: "",
updater: '', updater: "",
updateDate: '' updateDate: "",
} },
} };
}, },
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",
},
], ],
updater: [ /* updater: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } {
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], ],
updateDate: [ updateDate: [
{ 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/fhiwfunction/${this.dataForm.id}`).then(({ data: res }) => { this.$http
.get(`/fhjw/fhiwfunction/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.dataForm = { this.dataForm = {
...this.dataForm, ...this.dataForm,
...res.data ...res.data,
} };
}).catch(() => {}) })
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
this.$refs["dataForm"].validate((valid) => {
if (!valid) { if (!valid) {
return false return false;
} }
this.$http[!this.dataForm.id ? 'post' : 'put']('/fhjw/fhiwfunction/', this.dataForm).then(({ data: res }) => { this.$http[!this.dataForm.id ? "post" : "put"](
"/fhjw/fhiwfunction/",
this.dataForm
)
.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.$message({
message: this.$t('prompt.success'), message: this.$t("prompt.success"),
type: 'success', type: "success",
duration: 500, duration: 500,
onClose: () => { onClose: () => {
this.visible = false this.visible = false;
this.$emit('refreshDataList') this.$emit("refreshDataList");
} },
}) });
}).catch(() => {})
}) })
}, 1000, { 'leading': true, 'trailing': false }) .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__fhiwfunction}"> <div class="mod-fhjw__fhiwfunction}">
<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:fhiwfunction:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
v-if="$hasPermission('fhjw:fhiwfunction: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:fhiwfunction:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button
v-if="$hasPermission('fhjw:fhiwfunction: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="name" 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 :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="name"
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:fhiwfunction:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button
<el-button v-if="$hasPermission('fhjw:fhiwfunction:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> v-if="$hasPermission('fhjw:fhiwfunction:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button>
<el-button
v-if="$hasPermission('fhjw:fhiwfunction: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 +96,40 @@ ...@@ -40,35 +96,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 './fhiwfunction-add-or-update' import AddOrUpdate from "./fhiwfunction-add-or-update";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhiwfunction/page', getDataListURL: "/fhjw/fhiwfunction/page",
getDataListIsPage: true, getDataListIsPage: true,
exportURL: '/fhjw/fhiwfunction/export', exportURL: "/fhjw/fhiwfunction/export",
deleteURL: '/fhjw/fhiwfunction', deleteURL: "/fhjw/fhiwfunction",
deleteIsBatch: true deleteIsBatch: true,
}, },
dataForm: { dataForm: {
id: '' id: "",
} },
} };
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
} },
} };
</script> </script>
...@@ -13,26 +13,26 @@ ...@@ -13,26 +13,26 @@
:label-width="$i18n.locale === 'en-US' ? '140px' : '100px'" :label-width="$i18n.locale === 'en-US' ? '140px' : '100px'"
> >
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="13"> <el-col :span="12">
<el-form-item <el-form-item
label="受案号" label="受案号"
prop="caseNum" prop="caseNum"
> >
<el-input <el-input
v-model="dataForm.caseNum" v-model="dataForm.caseNum"
placeholder="受案号" placeholder="暂无"
readonly readonly
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="12">
<el-form-item <el-form-item
label="案件名称" label="案件名称"
prop="caseName" prop="caseName"
> >
<el-input <el-input
v-model="dataForm.caseName" v-model="dataForm.caseName"
placeholder="案件名称" placeholder="暂无"
readonly readonly
></el-input> ></el-input>
</el-form-item> </el-form-item>
...@@ -40,61 +40,76 @@ ...@@ -40,61 +40,76 @@
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="13">
<el-col :span="12">
<el-form-item <el-form-item
label="案件比" label="受理日期"
prop="caseQuality" prop="acceptanceDate"
> >
<el-input <el-input
v-model="dataForm.caseQuality" v-model="dataForm.acceptanceDate"
placeholder="案件比"
readonly readonly
placeholder="暂无"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="12">
<el-form-item <el-form-item
label="受理日期" label="审结日期"
prop="acceptanceDate" prop="completeDate"
> >
<el-input <el-input
v-model="dataForm.acceptanceDate" v-model="dataForm.completeDate"
placeholder="暂无"
readonly readonly
placeholder="受理日期"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="13">
<el-col :span="8">
<el-form-item <el-form-item
label="强制措施" label="当事人"
prop="coerciveMeasures" prop="peopleName"
> >
<el-input <el-input
v-model="dataForm.coerciveMeasures" v-model="dataForm.peopleName"
placeholder="强制措施" placeholder="暂无"
readonly readonly
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11"> <el-col :span="8">
<el-form-item <el-form-item
label="审结日期" label="代理人"
prop="completeDate" prop="agentName"
> >
<el-input <el-input
v-model="dataForm.completeDate" v-model="dataForm.agentName"
placeholder="审结日期" placeholder="暂无"
readonly readonly
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="8">
<el-form-item <el-form-item
label="承办人"
prop="undertaker"
>
<el-input
v-model="dataForm.undertaker"
placeholder="暂无"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<!-- <el-form-item
label="办理期限" label="办理期限"
prop="deadline" prop="deadline"
> >
...@@ -103,7 +118,7 @@ ...@@ -103,7 +118,7 @@
placeholder="办理期限" placeholder="办理期限"
readonly readonly
></el-input> ></el-input>
</el-form-item> </el-form-item> -->
<el-row <el-row
:gutter="30" :gutter="30"
class="user" class="user"
...@@ -121,7 +136,7 @@ ...@@ -121,7 +136,7 @@
<el-input <el-input
v-model="item.detail" v-model="item.detail"
placeholder="案件相关人员" placeholder="暂无"
readonly readonly
></el-input> ></el-input>
...@@ -136,7 +151,7 @@ ...@@ -136,7 +151,7 @@
<el-input <el-input
type="textarea" type="textarea"
v-model="dataForm.caseDetail" v-model="dataForm.caseDetail"
placeholder="案件详情" placeholder="暂无"
rows="3" rows="3"
readonly readonly
></el-input> ></el-input>
...@@ -171,6 +186,7 @@ export default { ...@@ -171,6 +186,7 @@ export default {
caseDetail: "", caseDetail: "",
creator: "", creator: "",
createDate: "", createDate: "",
agentName: "",
}, },
list: [], list: [],
}; };
......
...@@ -7,24 +7,27 @@ ...@@ -7,24 +7,27 @@
<el-form <el-form
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()" :rules="dataRule"
@keyup.enter.native="getCheck()"
> >
<el-form-item> <el-form-item prop="caseName">
<el-input <el-input
v-model="dataForm.caseName" v-model="dataForm.caseName"
placeholder="案件名称" placeholder="案件名称"
clearable clearable
:maxlength="50"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item prop="caseNum">
<el-input <el-input
v-model="dataForm.caseNum" v-model="caseNum"
placeholder="受案号" placeholder="受案号"
:maxlength="50"
clearable clearable
></el-input> ></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="getCheck()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
...@@ -73,12 +76,12 @@ ...@@ -73,12 +76,12 @@
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <!-- <el-table-column
prop="deadline" prop="deadline"
label="办理期限" label="办理期限"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column> -->
<el-table-column <el-table-column
prop="acceptanceDate" prop="acceptanceDate"
label="受理日期" label="受理日期"
...@@ -91,7 +94,7 @@ ...@@ -91,7 +94,7 @@
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <!-- <el-table-column
prop="coerciveMeasures" prop="coerciveMeasures"
label="强制措施" label="强制措施"
header-align="center" header-align="center"
...@@ -112,13 +115,31 @@ ...@@ -112,13 +115,31 @@
<template slot-scope="scope"> <template slot-scope="scope">
<div class="caseDetail">{{scope.row.caseDetail}}</div> <div class="caseDetail">{{scope.row.caseDetail}}</div>
</template> </template>
</el-table-column> </el-table-column> -->
<el-table-column <el-table-column
prop="userName" prop="undertaker"
label="承办人" label="承办人"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column
prop="peopleName"
label="当事人"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="agentName"
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 <el-table-column
prop="createDate" prop="createDate"
label="创建时间" label="创建时间"
...@@ -182,6 +203,7 @@ ...@@ -182,6 +203,7 @@
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"; import Detail from "./fhjwcase-detail";
import { isSpecial } from "@/utils/validate";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data() {
...@@ -193,15 +215,77 @@ export default { ...@@ -193,15 +215,77 @@ export default {
deleteURL: "/fhjw/fhjwcase", deleteURL: "/fhjw/fhjwcase",
deleteIsBatch: true, deleteIsBatch: true,
}, },
flag: true,
flag2: true,
dataForm: { dataForm: {
id: "", id: "",
caseName: "", caseName: "",
caseNum: "", caseNum: "",
}, },
caseNum: "",
detailVisible: false, detailVisible: false,
}; };
}, },
computed: {
dataRule() {
var validateCaseName = (rule, value, callback) => {
this.flag = true;
/* this.dataForm.caseName = this.dataForm.caseName.replace(
/[^u4e00-u9fa5w]/g,
""
); */
if (value && !isSpecial(value)) {
console.log("88888");
this.flag = false;
return callback(
new Error(this.$t("validate.format", { attr: "不能带特殊字符" }))
);
} else {
console.log("99999");
}
callback();
};
var validateCaseNum = (rule, value, callback) => {
this.flag2 = true;
/* this.dataForm.caseName = this.dataForm.caseName.replace(
/[^u4e00-u9fa5w]/g,
""
); */
if (value && !isSpecial(value)) {
console.log("88888");
this.flag2 = false;
return callback(
new Error(this.$t("validate.format", { attr: "不能带特殊字符" }))
);
} else {
console.log("99999");
}
callback();
};
return {
caseName: [
{ required: true, validator: validateCaseName, trigger: "blur" },
],
caseNum: [
{ required: true, validator: validateCaseNum, trigger: "blur" },
],
};
},
},
methods: { methods: {
filter(value) {
//转义字符方法
value = value.replace("[", "%5B").replace("]", "%5D");
return value;
},
getCheck() {
this.dataForm.caseNum = this.filter(this.caseNum);
if (this.flag && this.flag2) {
this.getDataList();
}
},
detailHandle(id) { detailHandle(id) {
console.log(id); console.log(id);
this.detailVisible = true; this.detailVisible = true;
......
...@@ -56,34 +56,13 @@ ...@@ -56,34 +56,13 @@
prop="userName" prop="userName"
> >
<el-input <el-input
v-model="dataForm.role" v-model="dataForm.userRole"
placeholder="角色" placeholder="角色"
readonly readonly
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </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 <el-form-item
label="问题及答案" label="问题及答案"
prop="userName" prop="userName"
......
...@@ -7,17 +7,19 @@ ...@@ -7,17 +7,19 @@
<el-form <el-form
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()" :rules="dataRule"
@keyup.enter.native="getCheck()"
> >
<el-form-item> <el-form-item prop="caseName">
<el-input <el-input
v-model="dataForm.caseName" v-model="dataForm.caseName"
placeholder="案件名称" placeholder="案件名称"
clearable clearable
:maxlength="50"
></el-input> ></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="getCheck()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
...@@ -53,45 +55,58 @@ ...@@ -53,45 +55,58 @@
align="center" align="center"
width="50" width="50"
></el-table-column> ></el-table-column>
<!-- <el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> --> <el-table-column
prop="deptName"
label="部门"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="undertaker"
label="承办人"
header-align="center"
align="center"
></el-table-column>
<el-table-column <el-table-column
prop="caseName" prop="caseName"
label="案件名称" label="案件名称"
header-align="center" header-align="center"
align="center" align="center"
> >
<template slot-scope="scope"> <!-- <template slot-scope="scope">
<el-button <el-button
type="text" type="text"
@click="childHandle(scope.row)" @click="childHandle(scope.row)"
>{{ scope.row.caseName }}</el-button> >{{ scope.row.caseName }}</el-button>
</template> </template> -->
</el-table-column> </el-table-column>
<el-table-column
<!-- <el-table-column prop="peopleName"
prop="tempName" label="当事人"
label="模板"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> --> ></el-table-column>
<!-- <el-table-column <el-table-column
prop="questionName" prop="caseNum"
label="问题" label="受案号"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<!-- <el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> -->
<el-table-column <el-table-column
prop="answer" prop="userName"
label="答案" label="评价人"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> --> ></el-table-column>
<!-- <el-table-column <el-table-column
prop="userName" prop="userRole"
label="用户" label="身份"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> --> ></el-table-column>
<!-- -->
<el-table-column <el-table-column
prop="createDate" prop="createDate"
label="创建时间" label="创建时间"
...@@ -106,11 +121,11 @@ ...@@ -106,11 +121,11 @@
width="150" width="150"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <el-button <el-button
type="text" type="text"
size="small" size="small"
@click="detailHandle(scope.row.caseId)" @click="detailHandle(scope.row)"
>详情</el-button> --> >详情</el-button>
<el-button <el-button
v-if="$hasPermission('fhjw:fhjwcomment:delete')" v-if="$hasPermission('fhjw:fhjwcomment:delete')"
type="text" type="text"
...@@ -151,6 +166,7 @@ import mixinViewModule from "@/mixins/view-module"; ...@@ -151,6 +166,7 @@ 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 Detail from "./fhjwcomment-detail";
import { addDynamicRoute } from "@/router"; import { addDynamicRoute } from "@/router";
import { isSpecial } from "@/utils/validate";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data() {
...@@ -166,6 +182,7 @@ export default { ...@@ -166,6 +182,7 @@ export default {
detailVisible: false, detailVisible: false,
showpop: false, showpop: false,
showpop2: false, showpop2: false,
flag: true,
dataForm: { dataForm: {
id: "", id: "",
caseName: "", caseName: "",
...@@ -174,7 +191,39 @@ export default { ...@@ -174,7 +191,39 @@ export default {
dataListSelections2: "", dataListSelections2: "",
}; };
}, },
computed: {
dataRule() {
var validateCaseName = (rule, value, callback) => {
this.flag = true;
/* this.dataForm.caseName = this.dataForm.caseName.replace(
/[^u4e00-u9fa5w]/g,
""
); */
if (value && !isSpecial(value)) {
console.log("88888");
this.flag = false;
return callback(
new Error(this.$t("validate.format", { attr: "不能带特殊字符" }))
);
} else {
console.log("99999");
}
callback();
};
return {
caseName: [
{ required: true, validator: validateCaseName, trigger: "blur" },
],
};
},
},
methods: { methods: {
getCheck() {
if (this.flag) {
this.getDataList();
}
},
// 多选 // 多选
dataListSelectionChangeHandle2(val) { dataListSelectionChangeHandle2(val) {
this.dataListSelections2 = val; this.dataListSelections2 = val;
...@@ -232,11 +281,13 @@ export default { ...@@ -232,11 +281,13 @@ export default {
}) })
.catch(() => {}); .catch(() => {});
}, },
detailHandle(id) { detailHandle(row) {
console.log(id); console.log(row.id);
this.detailVisible = true; this.detailVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.detail.dataForm.caseId = id; this.$refs.detail.dataForm.caseId = row.caseId;
this.$refs.detail.dataForm.userId = row.userId;
this.$refs.detail.dataForm.role = row.role;
this.$refs.detail.init(); this.$refs.detail.init();
}); });
}, },
......
...@@ -11,15 +11,42 @@ ...@@ -11,15 +11,42 @@
@keyup.enter.native="dataFormSubmitHandle()" @keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '120px'" :label-width="$i18n.locale === 'en-US' ? '120px' : '120px'"
> >
<el-row :gutter="30">
<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-col :span="12">
<el-form-item
label="意见类别"
prop="optionStatus"
>
<el-input
v-model="dataForm.optionStatus"
readonly
placeholder="意见类别"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item <el-form-item
label="用户" label="用户"
prop="userId" prop="userName"
> >
<el-input <el-input
v-model="dataForm.userId" v-model="dataForm.userName"
placeholder="用户" placeholder="用户"
readonly readonly
></el-input> ></el-input>
...@@ -44,16 +71,6 @@ ...@@ -44,16 +71,6 @@
</el-col> </el-col>
</el-row> </el-row>
<el-form-item
label="意见类别"
prop="optionStatus"
>
<el-input
v-model="dataForm.optionStatus"
readonly
placeholder="意见类别"
></el-input>
</el-form-item>
<el-form-item <el-form-item
label="意见、申诉内容" label="意见、申诉内容"
prop="content" prop="content"
......
...@@ -7,13 +7,14 @@ ...@@ -7,13 +7,14 @@
<el-form <el-form
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()" @keyup.enter.native="getCheck()"
> >
<el-form-item> <el-form-item prop="content">
<el-input <el-input
v-model="dataForm.content" v-model="dataForm.content"
placeholder="意见、申诉内容" placeholder="意见、申诉内容"
clearable clearable
:maxlength="50"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -37,7 +38,7 @@ ...@@ -37,7 +38,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button> <el-button @click="getCheck()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
...@@ -73,6 +74,39 @@ ...@@ -73,6 +74,39 @@
align="center" align="center"
width="50" width="50"
></el-table-column> ></el-table-column>
<el-table-column
prop="deptName"
label="部门"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="undertaker"
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="peopleName"
label="当事人"
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="id" label="id" header-align="center" align="center"></el-table-column> --> <!-- <el-table-column prop="id" label="id" header-align="center" align="center"></el-table-column> -->
<el-table-column <el-table-column
prop="content" prop="content"
...@@ -105,6 +139,12 @@ ...@@ -105,6 +139,12 @@
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column
prop="userRole"
label="身份"
header-align="center"
align="center"
></el-table-column>
<el-table-column <el-table-column
prop="createDate" prop="createDate"
label="创建时间" label="创建时间"
...@@ -162,6 +202,7 @@ ...@@ -162,6 +202,7 @@
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"; import Detail from "./fhjwfeedback-detail";
import { isEmail, isSpecial } from "@/utils/validate";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data() {
...@@ -179,6 +220,7 @@ export default { ...@@ -179,6 +220,7 @@ export default {
content: "", content: "",
feedbackType: "", feedbackType: "",
}, },
flag: true,
options: [ options: [
{ {
value: 1, value: 1,
...@@ -196,7 +238,40 @@ export default { ...@@ -196,7 +238,40 @@ export default {
value: "", value: "",
}; };
}, },
computed: {
dataRule() {
var validateCaseName = (rule, value, callback) => {
this.flag = true;
/* this.dataForm.caseName = this.dataForm.caseName.replace(
/[^u4e00-u9fa5w]/g,
""
); */
if (value && !isSpecial(value)) {
console.log("88888");
this.flag = false;
return callback(
new Error(this.$t("validate.format", { attr: "不能带特殊字符" }))
);
} else {
console.log("99999");
}
callback();
};
return {
content: [
{ required: true, validator: validateCaseName, trigger: "blur" },
],
};
},
},
methods: { methods: {
getCheck() {
this.dataForm.caseNum = this.filter(this.caseNum);
if (this.flag) {
this.getDataList();
}
},
detailHandle(id) { detailHandle(id) {
console.log(id); console.log(id);
this.detailVisible = true; this.detailVisible = true;
......
This diff is collapsed.
...@@ -7,9 +7,10 @@ ...@@ -7,9 +7,10 @@
<el-form <el-form
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
@keyup.enter.native="getDataList()" :rules="dataRule"
@keyup.enter.native="getCheck()"
> >
<el-form-item> <!-- <el-form-item prop="tempName">
<el-input <el-input
v-model="dataForm.tempName" v-model="dataForm.tempName"
placeholder="问卷名称" placeholder="问卷名称"
...@@ -17,8 +18,8 @@ ...@@ -17,8 +18,8 @@
></el-input> ></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="getCheck()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item> -->
<!-- <el-form-item> <!-- <el-form-item>
<el-button <el-button
type="info" type="info"
...@@ -119,6 +120,7 @@ ...@@ -119,6 +120,7 @@
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";
import { isSpecial } from "@/utils/validate";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data() {
...@@ -130,6 +132,7 @@ export default { ...@@ -130,6 +132,7 @@ export default {
deleteURL: "/fhjw/fhjwtemp", deleteURL: "/fhjw/fhjwtemp",
deleteIsBatch: true, deleteIsBatch: true,
}, },
flag: true,
dataForm: { dataForm: {
id: "", id: "",
tempName: "", tempName: "",
...@@ -139,7 +142,39 @@ export default { ...@@ -139,7 +142,39 @@ export default {
components: { components: {
AddOrUpdate, AddOrUpdate,
}, },
computed: {
dataRule() {
var validateCaseName = (rule, value, callback) => {
this.flag = true;
/* this.dataForm.caseName = this.dataForm.caseName.replace(
/[^u4e00-u9fa5w]/g,
""
); */
if (value && !isSpecial(value)) {
console.log("88888");
this.flag = false;
return callback(
new Error(this.$t("validate.format", { attr: "不能带特殊字符" }))
);
} else {
console.log("99999");
}
callback();
};
return {
tempName: [
{ required: true, validator: validateCaseName, trigger: "blur" },
],
};
},
},
methods: { methods: {
getCheck() {
if (this.flag) {
this.getDataList();
}
},
// 子级 // 子级
childHandle(row) { childHandle(row) {
// 路由参数 // 路由参数
......
...@@ -42,6 +42,19 @@ ...@@ -42,6 +42,19 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item
prop="funcIdList"
label="权限设置"
>
<el-checkbox-group v-model="dataForm.funcIdList">
<el-checkbox
v-for="item in allFuncList"
:label="item.id"
:key="item.id"
>{{item.name}}</el-checkbox>
</el-checkbox-group>
</el-form-item>
<!-- <el-form-item <!-- <el-form-item
label="备注" label="备注"
...@@ -79,8 +92,10 @@ export default { ...@@ -79,8 +92,10 @@ export default {
updateDate: "", updateDate: "",
remark: "", remark: "",
tempName: "", tempName: "",
funcIdList: [],
}, },
options: [], options: [],
allFuncList: [],
}; };
}, },
computed: { computed: {
...@@ -100,6 +115,13 @@ export default { ...@@ -100,6 +115,13 @@ export default {
trigger: "blur", trigger: "blur",
}, },
], ],
funcIdList: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
}; };
}, },
}, },
...@@ -124,6 +146,15 @@ export default { ...@@ -124,6 +146,15 @@ export default {
this.options = res.data; this.options = res.data;
}) })
.catch(() => {}); .catch(() => {});
this.$http
.get("/fhjw/fhiwfunction/getAllFuncList")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.allFuncList = res.data;
})
.catch(() => {});
}, },
// 获取信息 // 获取信息
getInfo() { getInfo() {
......
...@@ -66,8 +66,8 @@ ...@@ -66,8 +66,8 @@
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="creator" prop="funcName"
label="创建者" label="已授权"
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
......
...@@ -30,6 +30,19 @@ ...@@ -30,6 +30,19 @@
placeholder="手机号" placeholder="手机号"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item
prop="gender"
:label="$t('user.gender')"
>
<!-- <ren-radio-group
v-model="dataForm.gender"
dict-type="gender"
></ren-radio-group> -->
<el-radio-group v-model="dataForm.gender">
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item <el-form-item
label="所属权限" label="所属权限"
...@@ -51,7 +64,15 @@ ...@@ -51,7 +64,15 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item
label="身份"
prop="identity"
>
<el-input
v-model="dataForm.identity"
placeholder="身份"
></el-input>
</el-form-item>
<el-form-item <el-form-item
label="身份证号" label="身份证号"
prop="userIdno" prop="userIdno"
...@@ -88,6 +109,8 @@ export default { ...@@ -88,6 +109,8 @@ export default {
userRole: "", userRole: "",
/* caseId: '', */ /* caseId: '', */
createDate: "", createDate: "",
gender: "",
identity: "",
}, },
options: [], options: [],
}; };
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<el-form <el-form
:inline="true" :inline="true"
:model="dataForm" :model="dataForm"
:rules="dataRule"
@keyup.enter.native="getDataList()" @keyup.enter.native="getDataList()"
> >
<!-- <el-form-item> <!-- <el-form-item>
...@@ -16,7 +17,7 @@ ...@@ -16,7 +17,7 @@
clearable clearable
></el-input> ></el-input>
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item prop="mobile">
<el-input <el-input
v-model="dataForm.mobile" v-model="dataForm.mobile"
placeholder="手机号" placeholder="手机号"
...@@ -24,14 +25,8 @@ ...@@ -24,14 +25,8 @@
></el-input> ></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="getCheck()">{{ $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 <el-button
v-if="$hasPermission('fhjw:user:save')" v-if="$hasPermission('fhjw:user:save')"
...@@ -39,6 +34,20 @@ ...@@ -39,6 +34,20 @@
@click="addOrUpdateHandle()" @click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button> >{{ $t('add') }}</el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item>
<el-upload
class="upload-demo"
ref="upload"
action=""
:http-request="afterRead"
accept=".pdf,.doc,.docx,.xls,.xlsx"
:file-list="datalist"
>
<el-button type="warning">导入</el-button>
</el-upload>
</el-form-item> -->
<!-- <el-form-item> <!-- <el-form-item>
<el-button <el-button
v-if="$hasPermission('fhjw:user:delete')" v-if="$hasPermission('fhjw:user:delete')"
...@@ -46,6 +55,9 @@ ...@@ -46,6 +55,9 @@
@click="deleteHandle()" @click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button> >{{ $t('deleteBatch') }}</el-button>
</el-form-item> --> </el-form-item> -->
<!-- <el-form-item>
<a href="">点击此处下载导入模板</a>
</el-form-item> -->
</el-form> </el-form>
<el-table <el-table
v-loading="dataListLoading" v-loading="dataListLoading"
...@@ -78,6 +90,24 @@ ...@@ -78,6 +90,24 @@
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column
prop="identity"
label="身份"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="gender"
:label="$t('user.gender')"
sortable="custom"
header-align="center"
align="center"
>
<template slot-scope="scope">
<!-- {{ $getDictLabel("gender", scope.row.gender) }} -->
<span>{{genderText(scope.row.gender)}}</span>
</template>
</el-table-column>
<el-table-column <el-table-column
prop="userRole" prop="userRole"
label="所属权限" label="所属权限"
...@@ -111,12 +141,12 @@ ...@@ -111,12 +141,12 @@
size="small" size="small"
@click="addOrUpdateHandle(scope.row.id)" @click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button> >{{ $t('update') }}</el-button>
<!-- <el-button <el-button
v-if="$hasPermission('fhjw:user:delete')" v-if="$hasPermission('fhjw:user:delete')"
type="text" type="text"
size="small" size="small"
@click="deleteHandle(scope.row.id)" @click="deleteHandle(scope.row.id)"
>{{ $t('delete') }}</el-button> --> >{{ $t('delete') }}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -143,6 +173,7 @@ ...@@ -143,6 +173,7 @@
<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";
import { isEmail, isNumber } from "@/utils/validate";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data() { data() {
...@@ -154,14 +185,83 @@ export default { ...@@ -154,14 +185,83 @@ export default {
deleteURL: "/fhjw/user", deleteURL: "/fhjw/user",
deleteIsBatch: true, deleteIsBatch: true,
}, },
datalist: [],
flag: true,
dataForm: { dataForm: {
id: "", id: "",
mobile: "", mobile: "",
}, },
}; };
}, },
computed: {
dataRule() {
var validateMobile = (rule, value, callback) => {
this.flag = true;
if (value && !isNumber(value)) {
console.log("88888");
this.flag = false;
return callback(
new Error(
this.$t("validate.format", { attr: this.$t("user.mobile") })
)
);
} else {
console.log("99999");
}
callback();
};
return {
mobile: [
{ required: true, validator: validateMobile, trigger: "blur" },
],
};
},
},
components: { components: {
AddOrUpdate, AddOrUpdate,
}, },
methods: {
getCheck() {
if (this.flag) {
this.getDataList();
}
},
genderText(gender) {
return ["男", "女"][gender];
},
//上传附件
afterRead(file) {
let data = new FormData();
data.append("file", file.file);
console.log(file);
const loading = this.$loading({
lock: true,
text: "Loading",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.7)",
});
setTimeout(() => {
loading.close();
}, 2000);
// console.log("file", data);
/* getfileUploader(data).then((res) => {
if (res.data.code == 0) {
this.datalist.push({
docId: res.data.data.docId,
name: res.data.data.fileName,
filePath: res.data.data.url,
createDate: currentDate,
});
// console.log("上传完的dataform", this.dataForm);
}
this.dataForm.woWorkorderDocumentDTOList = this.datalist;
}); */
},
},
}; };
</script> </script>
<style lang="less" scoped>
/deep/.el-upload-list {
display: none;
}
</style>
This diff is collapsed.
<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="120px"> :visible.sync="visible"
<el-form-item prop="name" :label="$t('role.name')"> :title="!dataForm.id ? $t('add') : $t('update')"
<el-input v-model="dataForm.name" :placeholder="$t('role.name')"></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="120px"
>
<el-form-item
prop="name"
:label="$t('role.name')"
>
<el-input
v-model="dataForm.name"
:placeholder="$t('role.name')"
></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="remark" :label="$t('role.remark')"> <el-form-item
<el-input v-model="dataForm.remark" :placeholder="$t('role.remark')"></el-input> prop="remark"
:label="$t('role.remark')"
>
<el-input
v-model="dataForm.remark"
:placeholder="$t('role.remark')"
></el-input>
</el-form-item> </el-form-item>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item size="mini" :label="$t('role.menuList')"> <el-form-item
size="mini"
:label="$t('role.menuList')"
>
<el-tree <el-tree
:data="menuList" :data="menuList"
:props="{ label: 'name', children: 'children' }" :props="{ label: 'name', children: 'children' }"
node-key="id" node-key="id"
ref="menuListTree" ref="menuListTree"
accordion accordion
show-checkbox> show-checkbox
>
</el-tree> </el-tree>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item size="mini" :label="$t('role.deptList')"> <el-form-item
size="mini"
:label="$t('role.deptList')"
>
<el-tree <el-tree
:data="deptList" :data="deptList"
:props="{ label: 'name', children: 'children' }" :props="{ label: 'name', children: 'children' }"
node-key="id" node-key="id"
ref="deptListTree" ref="deptListTree"
accordion accordion
show-checkbox> show-checkbox
>
</el-tree> </el-tree>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -36,113 +67,137 @@ ...@@ -36,113 +67,137 @@
</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,
menuList: [], menuList: [],
deptList: [], deptList: [],
dataForm: { dataForm: {
id: '', id: "",
name: '', name: "",
menuIdList: [], menuIdList: [],
deptIdList: [], deptIdList: [],
remark: '' remark: "",
} },
} };
}, },
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",
},
],
};
},
}, },
methods: { methods: {
init () { init() {
this.visible = true this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs["dataForm"].resetFields();
this.$refs.menuListTree.setCheckedKeys([]) this.$refs.menuListTree.setCheckedKeys([]);
this.$refs.deptListTree.setCheckedKeys([]) this.$refs.deptListTree.setCheckedKeys([]);
Promise.all([ Promise.all([this.getMenuList(), this.getDeptList()]).then(() => {
this.getMenuList(),
this.getDeptList()
]).then(() => {
if (this.dataForm.id) { if (this.dataForm.id) {
this.getInfo() this.getInfo();
} }
}) });
}) });
}, },
// 获取菜单列表 // 获取菜单列表
getMenuList () { getMenuList() {
return this.$http.get('/sys/menu/select').then(({ data: res }) => { return this.$http
.get("/sys/menu/select")
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.menuList = res.data this.menuList = res.data;
}).catch(() => {}) })
.catch(() => {});
}, },
// 获取部门列表 // 获取部门列表
getDeptList () { getDeptList() {
return this.$http.get('/sys/dept/list').then(({ data: res }) => { return this.$http
.get("/sys/dept/list")
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.deptList = res.data this.deptList = res.data;
}).catch(() => {}) })
.catch(() => {});
}, },
// 获取信息 // 获取信息
getInfo () { getInfo() {
this.$http.get(`/sys/role/${this.dataForm.id}`).then(({ data: res }) => { this.$http
.get(`/sys/role/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg);
} }
this.dataForm = { this.dataForm = {
...this.dataForm, ...this.dataForm,
...res.data ...res.data,
} };
this.dataForm.menuIdList.forEach(item => this.$refs.menuListTree.setChecked(item, true)) this.dataForm.menuIdList.forEach((item) =>
this.$refs.deptListTree.setCheckedKeys(this.dataForm.deptIdList) this.$refs.menuListTree.setChecked(item, true)
}).catch(() => {}) );
this.$refs.deptListTree.setCheckedKeys(this.dataForm.deptIdList);
})
.catch(() => {});
}, },
// 表单提交 // 表单提交
dataFormSubmitHandle: debounce(function () { dataFormSubmitHandle: debounce(
this.$refs['dataForm'].validate((valid) => { function () {
this.$refs["dataForm"].validate((valid) => {
if (!valid) { if (!valid) {
return false return false;
} }
this.dataForm.menuIdList = [ this.dataForm.menuIdList = [
...this.$refs.menuListTree.getHalfCheckedKeys(), ...this.$refs.menuListTree.getHalfCheckedKeys(),
...this.$refs.menuListTree.getCheckedKeys() ...this.$refs.menuListTree.getCheckedKeys(),
] ];
this.dataForm.deptIdList = this.$refs.deptListTree.getCheckedKeys() this.dataForm.deptIdList = this.$refs.deptListTree.getCheckedKeys();
this.$http[!this.dataForm.id ? 'post' : 'put']('/sys/role', this.dataForm).then(({ data: res }) => { this.$http[!this.dataForm.id ? "post" : "put"](
"/sys/role",
this.dataForm
)
.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.$message({
message: this.$t('prompt.success'), message: this.$t("prompt.success"),
type: 'success', type: "success",
duration: 500, duration: 500,
onClose: () => { onClose: () => {
this.visible = false this.visible = false;
this.$emit('refreshDataList') this.$emit("refreshDataList");
} },
}) });
}).catch(() => {})
}) })
}, 1000, { 'leading': true, 'trailing': false }) .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-sys__role"> <div class="mod-sys__role">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> <el-form
<el-form-item> :inline="true"
<el-input v-model="dataForm.name" :placeholder="$t('role.name')" clearable></el-input> :rules="dataRule"
:model="dataForm"
@keyup.enter.native="getCheck()"
>
<!-- <el-form-item prop="name">
<el-input
v-model="dataForm.name"
:placeholder="$t('role.name')"
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="getCheck()">{{ $t('query') }}</el-button>
</el-form-item> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button v-if="$hasPermission('sys:role:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button> <el-button
v-if="$hasPermission('sys: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('sys:role:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> <el-button
v-if="$hasPermission('sys:role:delete')"
type="danger"
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
...@@ -21,15 +41,54 @@ ...@@ -21,15 +41,54 @@
border border
@selection-change="dataListSelectionChangeHandle" @selection-change="dataListSelectionChangeHandle"
@sort-change="dataListSortChangeHandle" @sort-change="dataListSortChangeHandle"
style="width: 100%;"> style="width: 100%;"
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> >
<el-table-column prop="name" :label="$t('role.name')" header-align="center" align="center"></el-table-column> <el-table-column
<el-table-column prop="remark" :label="$t('role.remark')" header-align="center" align="center"></el-table-column> type="selection"
<el-table-column prop="createDate" :label="$t('role.createDate')" sortable="custom" header-align="center" align="center" width="180"></el-table-column> header-align="center"
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150"> align="center"
width="50"
></el-table-column>
<el-table-column
prop="name"
:label="$t('role.name')"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="remark"
:label="$t('role.remark')"
header-align="center"
align="center"
></el-table-column>
<el-table-column
prop="createDate"
:label="$t('role.createDate')"
sortable="custom"
header-align="center"
align="center"
width="180"
></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('sys:role:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> <el-button
<el-button v-if="$hasPermission('sys:role:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> v-if="$hasPermission('sys:role:update')"
type="text"
size="small"
@click="addOrUpdateHandle(scope.row.id)"
>{{ $t('update') }}</el-button>
<el-button
v-if="$hasPermission('sys: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>
...@@ -40,34 +99,75 @@ ...@@ -40,34 +99,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>
</div> </div>
</el-card> </el-card>
</template> </template>
<script> <script>
import mixinViewModule from '@/mixins/view-module' import { isSpecial } from "@/utils/validate";
import AddOrUpdate from './role-add-or-update' import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./role-add-or-update";
export default { export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data() {
return { return {
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/sys/role/page', getDataListURL: "/sys/role/page",
getDataListIsPage: true, getDataListIsPage: true,
deleteURL: '/sys/role', deleteURL: "/sys/role",
deleteIsBatch: true deleteIsBatch: true,
}, },
flag: true,
dataForm: { dataForm: {
name: '' name: "",
} },
};
},
computed: {
dataRule() {
var validateCaseName = (rule, value, callback) => {
this.flag = true;
/* this.dataForm.caseName = this.dataForm.caseName.replace(
/[^u4e00-u9fa5w]/g,
""
); */
if (value && !isSpecial(value)) {
console.log("88888");
this.flag = false;
return callback(
new Error(this.$t("validate.format", { attr: "不能带特殊字符" }))
);
} else {
console.log("99999");
} }
callback();
};
return {
name: [
{ required: true, validator: validateCaseName, trigger: "blur" },
],
};
},
}, },
components: { components: {
AddOrUpdate AddOrUpdate,
},
methods: {
getCheck() {
if (this.flag) {
this.getDataList();
} }
} },
},
};
</script> </script>
This diff is collapsed.
...@@ -2,12 +2,23 @@ ...@@ -2,12 +2,23 @@
<div class="aui-wrapper aui-page__login"> <div class="aui-wrapper aui-page__login">
<div class="aui-content__wrapper"> <div class="aui-content__wrapper">
<main class="aui-content"> <main class="aui-content">
<div class="login-header"> <div
<!-- <h2 class="login-brand">{{ $t('brand.lg') }}</h2> --> class="login-header"
style="display:flex"
>
<img <img
src="../../assets/img/logo.png" src="../../assets/img/logo_icon.png"
alt="" alt=""
style="margin-right:10px;width:42px;height:47px; vertical-align: middle;"
> >
<h2
style="font-size:32px;line-height:50px;font-weight:700"
class="login-brand title-head"
>{{ $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>
...@@ -177,6 +188,9 @@ export default { ...@@ -177,6 +188,9 @@ export default {
if (!valid) { if (!valid) {
return false; return false;
} }
let Base64 = require("js-base64").Base64;
// this.dataForm.password = this.$md5(this.dataForm.password);
this.dataForm.password = Base64.encode(this.dataForm.password);
this.$http this.$http
.post("/login", this.dataForm) .post("/login", this.dataForm)
.then(({ data: res }) => { .then(({ data: res }) => {
...@@ -196,3 +210,8 @@ export default { ...@@ -196,3 +210,8 @@ export default {
}, },
}; };
</script> </script>
<style scoped>
.title-head {
vertical-align: middle;
}
</style>
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