Commit 4330a84c authored by feiwenli's avatar feiwenli

end

parent 0026c269
File added
File added
......@@ -10128,9 +10128,9 @@
"dev": true
},
"js-base64": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
"integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw=="
"version": "3.6.1",
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.6.1.tgz",
"integrity": "sha512-Frdq2+tRRGLQUIQOgsIGSCd1VePCS2fsddTG5dTCqR0JHgltXWfsxnY0gIXPoMeRmdom6Oyq+UMOFg5suduOjQ=="
},
"js-cookie": {
"version": "2.2.0",
......@@ -10143,6 +10143,11 @@
"integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==",
"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": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.5.tgz",
......@@ -15592,6 +15597,11 @@
"source-map": "^0.4.2"
},
"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": {
"version": "0.4.4",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
......@@ -16779,6 +16789,13 @@
"js-base64": "^2.1.9",
"source-map": "^0.5.6",
"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": {
......
......@@ -25,7 +25,9 @@
"gulp-load-plugins": "^2.0.0",
"gulp-rename": "^1.4.0",
"gulp-sass": "^4.0.2",
"js-base64": "^3.6.1",
"js-cookie": "^2.2.0",
"js-md5": "^0.7.3",
"less": "^3.0.4",
"less-loader": "^5.0.0",
"lodash": "^4.17.15",
......
......@@ -10,8 +10,9 @@
window.SITE_CONFIG = {};
window.SITE_CONFIG['version'] = 'v1.0.0';
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://119.3.50.187:8011/hmit-admin'; // api请求地址
window.SITE_CONFIG['apiURL'] = 'http://10.55.125.88:8080/hmit-admin';
//window.SITE_CONFIG['apiURL'] = 'http://119.3.50.187:8011/hmit-admin';
//window.SITE_CONFIG['apiURL'] = 'http://192.168.10.125:8080/hmit-admin'; // api请求地址
window.SITE_CONFIG['storeState'] = {}; // vuex本地储存初始化状态(用于不刷新页面的情况下,也能重置初始化项目中所有状态)
window.SITE_CONFIG['contentTabDefault'] = { // 内容标签页默认属性对象
'name': '', // 名称, 由 this.$route.name 自动赋值(默认,名称 === 路由名称 === 路由路径)
......
......@@ -15,20 +15,22 @@ export default {
options: Object,
height: String,
width: String,
// bage: String,
},
data() {
return {};
return {
myChart: "",
};
},
methods: {
getEchart() {
const chart = this.$refs.chartpie;
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 option = this.options;
myChart.setOption(option);
myChart.setOption(option, true);
window.addEventListener("resize", function () {
myChart.resize();
});
......@@ -39,11 +41,23 @@ export default {
});
});
},
resize() {
this.myChart.resize();
},
rerender() {
this.myChart.setOption(this.options, true);
},
},
created() {},
mounted() {
// console.log("子组件接受到的", this.options);
this.getEchart();
},
watch: {
options(newval, oldval) {
this.myChart.setOption(newval, true);
},
},
};
</script>
......
......@@ -20,6 +20,8 @@ import { hasPermission, getDictLabel } from '@/utils'
import cloneDeep from 'lodash/cloneDeep'
import * as echarts from 'echarts';
import md5 from 'js-md5';
Vue.prototype.$md5 = md5;
Vue.config.productionTip = false
......
......@@ -2,7 +2,7 @@
* 邮箱
* @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)
}
......@@ -10,15 +10,38 @@ export function isEmail (s) {
* 手机号码
* @param {*} s
*/
export function isMobile (s) {
export function isMobile(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
*/
export function isPhone (s) {
export function isPhone(s) {
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
......@@ -26,6 +49,6 @@ export function isPhone (s) {
* URL地址
* @param {*} s
*/
export function isURL (s) {
export function isURL(s) {
return /^http[s]?:\/\/.*/.test(s)
}
......@@ -4,94 +4,158 @@
:title="$t('updatePassword.title')"
:close-on-click-modal="false"
:close-on-press-escape="false"
:append-to-body="true">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
:append-to-body="true"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px"
>
<el-form-item :label="$t('updatePassword.username')">
<span>{{ $store.state.user.name }}</span>
</el-form-item>
<el-form-item prop="password" :label="$t('updatePassword.password')">
<el-input v-model="dataForm.password" type="password" :placeholder="$t('updatePassword.password')"></el-input>
<el-form-item
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 prop="newPassword" :label="$t('updatePassword.newPassword')">
<el-input v-model="dataForm.newPassword" type="password" :placeholder="$t('updatePassword.newPassword')"></el-input>
<el-form-item
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 prop="confirmPassword" :label="$t('updatePassword.confirmPassword')">
<el-input v-model="dataForm.confirmPassword" type="password" :placeholder="$t('updatePassword.confirmPassword')"></el-input>
<el-form-item
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>
<template slot="footer">
<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>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
import { clearLoginInfo } from '@/utils'
import debounce from "lodash/debounce";
import { clearLoginInfo } from "@/utils";
export default {
data () {
data() {
return {
visible: false,
dataForm: {
password: '',
newPassword: '',
confirmPassword: ''
}
}
password: "",
newPassword: "",
confirmPassword: "",
},
};
},
computed: {
dataRule () {
dataRule() {
var validateConfirmPassword = (rule, value, callback) => {
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 {
password: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
newPassword: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
{ validator: validateNewPass, trigger: "blur" },
],
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: {
init () {
this.visible = true
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
this.$refs["dataForm"].resetFields();
});
},
// 表单提交
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
dataFormSubmitHandle: debounce(
function () {
this.$refs["dataForm"].validate((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) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false
clearLoginInfo()
this.$router.replace({ name: 'login' })
}
})
}).catch(() => {})
this.visible = false;
clearLoginInfo();
this.$router.replace({ name: "login" });
},
});
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>
......@@ -5,20 +5,26 @@
>
<div
class="aui-navbar__header"
style="width:460px"
style="width:375px"
>
<h1
class="aui-navbar__brand"
@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"
href="javascript:;"
>{{ $t('brand.lg') }}</a> -->
<img
>{{ $t('brand.lg') }}</a>
<!-- <img
src="../assets/img/logo.png"
alt=""
>
> -->
<a
class="aui-navbar__brand-mini"
......
<template>
<el-dialog :visible.sync="visible" :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="评价模块名字" prop="name">
<el-input v-model="dataForm.name" placeholder="评价模块名字"></el-input>
<el-dialog
:visible.sync="visible"
: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="评价模块名字"
prop="name"
>
<el-input
v-model="dataForm.name"
placeholder="评价模块名字"
></el-input>
</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-form-item>
<el-form-item label="更新时间" prop="updateDate">
<el-input v-model="dataForm.updateDate" placeholder="更新时间"></el-input>
</el-form-item>
</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>
<el-button
type="primary"
@click="dataFormSubmitHandle()"
>{{ $t('confirm') }}</el-button>
</template>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
import debounce from "lodash/debounce";
export default {
data () {
data() {
return {
visible: false,
dataForm: {
id: '',
name: '',
creator: '',
createDate: '',
updater: '',
updateDate: ''
}
}
id: "",
name: "",
creator: "",
createDate: "",
updater: "",
updateDate: "",
},
};
},
computed: {
dataRule () {
dataRule() {
return {
name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
updater: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
/* updater: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
updateDate: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
], */
};
},
},
methods: {
init () {
this.visible = true
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
this.$refs["dataForm"].resetFields();
if (this.dataForm.id) {
this.getInfo()
this.getInfo();
}
})
});
},
// 获取信息
getInfo () {
this.$http.get(`/fhjw/fhiwfunction/${this.dataForm.id}`).then(({ data: res }) => {
getInfo() {
this.$http
.get(`/fhjw/fhiwfunction/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data
}
}).catch(() => {})
...res.data,
};
})
.catch(() => {});
},
// 表单提交
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
dataFormSubmitHandle: debounce(
function () {
this.$refs["dataForm"].validate((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) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
}).catch(() => {})
this.visible = false;
this.$emit("refreshDataList");
},
});
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>
<template>
<el-card shadow="never" class="aui-card--fill">
<el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-fhjw__fhiwfunction}">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.id" placeholder="id" clearable></el-input>
<el-form
:inline="true"
: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-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-form-item>
<el-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</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-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>
<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="name" 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 :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<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="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">
<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>
<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>
</el-table-column>
</el-table>
......@@ -40,35 +96,40 @@
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
@current-change="pageCurrentChangeHandle"
>
</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>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './fhiwfunction-add-or-update'
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./fhiwfunction-add-or-update";
export default {
mixins: [mixinViewModule],
data () {
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/fhjw/fhiwfunction/page',
getDataListURL: "/fhjw/fhiwfunction/page",
getDataListIsPage: true,
exportURL: '/fhjw/fhiwfunction/export',
deleteURL: '/fhjw/fhiwfunction',
deleteIsBatch: true
exportURL: "/fhjw/fhiwfunction/export",
deleteURL: "/fhjw/fhiwfunction",
deleteIsBatch: true,
},
dataForm: {
id: ''
}
}
id: "",
},
};
},
components: {
AddOrUpdate
}
}
AddOrUpdate,
},
};
</script>
......@@ -13,26 +13,26 @@
:label-width="$i18n.locale === 'en-US' ? '140px' : '100px'"
>
<el-row :gutter="30">
<el-col :span="13">
<el-col :span="12">
<el-form-item
label="受案号"
prop="caseNum"
>
<el-input
v-model="dataForm.caseNum"
placeholder="受案号"
placeholder="暂无"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-col :span="12">
<el-form-item
label="案件名称"
prop="caseName"
>
<el-input
v-model="dataForm.caseName"
placeholder="案件名称"
placeholder="暂无"
readonly
></el-input>
</el-form-item>
......@@ -40,61 +40,76 @@
</el-row>
<el-row :gutter="30">
<el-col :span="13">
<el-col :span="12">
<el-form-item
label="案件比"
prop="caseQuality"
label="受理日期"
prop="acceptanceDate"
>
<el-input
v-model="dataForm.caseQuality"
placeholder="案件比"
v-model="dataForm.acceptanceDate"
readonly
placeholder="暂无"
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-col :span="12">
<el-form-item
label="受理日期"
prop="acceptanceDate"
label="审结日期"
prop="completeDate"
>
<el-input
v-model="dataForm.acceptanceDate"
v-model="dataForm.completeDate"
placeholder="暂无"
readonly
placeholder="受理日期"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="13">
<el-col :span="8">
<el-form-item
label="强制措施"
prop="coerciveMeasures"
label="当事人"
prop="peopleName"
>
<el-input
v-model="dataForm.coerciveMeasures"
placeholder="强制措施"
v-model="dataForm.peopleName"
placeholder="暂无"
readonly
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-col :span="8">
<el-form-item
label="审结日期"
prop="completeDate"
label="代理人"
prop="agentName"
>
<el-input
v-model="dataForm.completeDate"
placeholder="审结日期"
v-model="dataForm.agentName"
placeholder="暂无"
readonly
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-col :span="8">
<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="办理期限"
prop="deadline"
>
......@@ -103,7 +118,7 @@
placeholder="办理期限"
readonly
></el-input>
</el-form-item>
</el-form-item> -->
<el-row
:gutter="30"
class="user"
......@@ -121,7 +136,7 @@
<el-input
v-model="item.detail"
placeholder="案件相关人员"
placeholder="暂无"
readonly
></el-input>
......@@ -136,7 +151,7 @@
<el-input
type="textarea"
v-model="dataForm.caseDetail"
placeholder="案件详情"
placeholder="暂无"
rows="3"
readonly
></el-input>
......@@ -171,6 +186,7 @@ export default {
caseDetail: "",
creator: "",
createDate: "",
agentName: "",
},
list: [],
};
......
......@@ -7,24 +7,27 @@
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
:rules="dataRule"
@keyup.enter.native="getCheck()"
>
<el-form-item>
<el-form-item prop="caseName">
<el-input
v-model="dataForm.caseName"
placeholder="案件名称"
clearable
:maxlength="50"
></el-input>
</el-form-item>
<el-form-item>
<el-form-item prop="caseNum">
<el-input
v-model="dataForm.caseNum"
v-model="caseNum"
placeholder="受案号"
:maxlength="50"
clearable
></el-input>
</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-button
......@@ -73,12 +76,12 @@
header-align="center"
align="center"
></el-table-column>
<el-table-column
<!-- <el-table-column
prop="deadline"
label="办理期限"
header-align="center"
align="center"
></el-table-column>
></el-table-column> -->
<el-table-column
prop="acceptanceDate"
label="受理日期"
......@@ -91,7 +94,7 @@
header-align="center"
align="center"
></el-table-column>
<el-table-column
<!-- <el-table-column
prop="coerciveMeasures"
label="强制措施"
header-align="center"
......@@ -112,13 +115,31 @@
<template slot-scope="scope">
<div class="caseDetail">{{scope.row.caseDetail}}</div>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column
prop="userName"
prop="undertaker"
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="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
prop="createDate"
label="创建时间"
......@@ -182,6 +203,7 @@
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./fhjwcase-add-or-update";
import Detail from "./fhjwcase-detail";
import { isSpecial } from "@/utils/validate";
export default {
mixins: [mixinViewModule],
data() {
......@@ -193,15 +215,77 @@ export default {
deleteURL: "/fhjw/fhjwcase",
deleteIsBatch: true,
},
flag: true,
flag2: true,
dataForm: {
id: "",
caseName: "",
caseNum: "",
},
caseNum: "",
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: {
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) {
console.log(id);
this.detailVisible = true;
......
......@@ -56,34 +56,13 @@
prop="userName"
>
<el-input
v-model="dataForm.role"
v-model="dataForm.userRole"
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"
......
......@@ -7,17 +7,19 @@
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
:rules="dataRule"
@keyup.enter.native="getCheck()"
>
<el-form-item>
<el-form-item prop="caseName">
<el-input
v-model="dataForm.caseName"
placeholder="案件名称"
clearable
:maxlength="50"
></el-input>
</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-button
......@@ -53,45 +55,58 @@
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="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"
>
<template slot-scope="scope">
<!-- <template slot-scope="scope">
<el-button
type="text"
@click="childHandle(scope.row)"
>{{ scope.row.caseName }}</el-button>
</template>
</template> -->
</el-table-column>
<!-- <el-table-column
prop="tempName"
label="模板"
<el-table-column
prop="peopleName"
label="当事人"
header-align="center"
align="center"
></el-table-column> -->
<!-- <el-table-column
prop="questionName"
label="问题"
></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="answer"
label="答案"
prop="userName"
label="评价人"
header-align="center"
align="center"
></el-table-column> -->
<!-- <el-table-column
prop="userName"
label="用户"
></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"
label="创建时间"
......@@ -106,11 +121,11 @@
width="150"
>
<template slot-scope="scope">
<!-- <el-button
<el-button
type="text"
size="small"
@click="detailHandle(scope.row.caseId)"
>详情</el-button> -->
@click="detailHandle(scope.row)"
>详情</el-button>
<el-button
v-if="$hasPermission('fhjw:fhjwcomment:delete')"
type="text"
......@@ -151,6 +166,7 @@ import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./fhjwcomment-add-or-update";
import Detail from "./fhjwcomment-detail";
import { addDynamicRoute } from "@/router";
import { isSpecial } from "@/utils/validate";
export default {
mixins: [mixinViewModule],
data() {
......@@ -166,6 +182,7 @@ export default {
detailVisible: false,
showpop: false,
showpop2: false,
flag: true,
dataForm: {
id: "",
caseName: "",
......@@ -174,7 +191,39 @@ export default {
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: {
getCheck() {
if (this.flag) {
this.getDataList();
}
},
// 多选
dataListSelectionChangeHandle2(val) {
this.dataListSelections2 = val;
......@@ -232,11 +281,13 @@ export default {
})
.catch(() => {});
},
detailHandle(id) {
console.log(id);
detailHandle(row) {
console.log(row.id);
this.detailVisible = true;
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();
});
},
......
......@@ -11,15 +11,42 @@
@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="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-col :span="12">
<el-form-item
label="用户"
prop="userId"
prop="userName"
>
<el-input
v-model="dataForm.userId"
v-model="dataForm.userName"
placeholder="用户"
readonly
></el-input>
......@@ -44,16 +71,6 @@
</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"
......
......@@ -7,13 +7,14 @@
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
@keyup.enter.native="getCheck()"
>
<el-form-item>
<el-form-item prop="content">
<el-input
v-model="dataForm.content"
placeholder="意见、申诉内容"
clearable
:maxlength="50"
></el-input>
</el-form-item>
<el-form-item>
......@@ -37,7 +38,7 @@
</el-select>
</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-button
......@@ -73,6 +74,39 @@
align="center"
width="50"
></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="content"
......@@ -105,6 +139,12 @@
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="createDate"
label="创建时间"
......@@ -162,6 +202,7 @@
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./fhjwfeedback-add-or-update";
import Detail from "./fhjwfeedback-detail";
import { isEmail, isSpecial } from "@/utils/validate";
export default {
mixins: [mixinViewModule],
data() {
......@@ -179,6 +220,7 @@ export default {
content: "",
feedbackType: "",
},
flag: true,
options: [
{
value: 1,
......@@ -196,7 +238,40 @@ export default {
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: {
getCheck() {
this.dataForm.caseNum = this.filter(this.caseNum);
if (this.flag) {
this.getDataList();
}
},
detailHandle(id) {
console.log(id);
this.detailVisible = true;
......
This diff is collapsed.
......@@ -7,9 +7,10 @@
<el-form
:inline="true"
:model="dataForm"
@keyup.enter.native="getDataList()"
:rules="dataRule"
@keyup.enter.native="getCheck()"
>
<el-form-item>
<!-- <el-form-item prop="tempName">
<el-input
v-model="dataForm.tempName"
placeholder="问卷名称"
......@@ -17,8 +18,8 @@
></el-input>
</el-form-item>
<el-form-item>
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-button @click="getCheck()">{{ $t('query') }}</el-button>
</el-form-item> -->
<!-- <el-form-item>
<el-button
type="info"
......@@ -119,6 +120,7 @@
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./fhjwtemp-add-or-update";
import { addDynamicRoute } from "@/router";
import { isSpecial } from "@/utils/validate";
export default {
mixins: [mixinViewModule],
data() {
......@@ -130,6 +132,7 @@ export default {
deleteURL: "/fhjw/fhjwtemp",
deleteIsBatch: true,
},
flag: true,
dataForm: {
id: "",
tempName: "",
......@@ -139,7 +142,39 @@ export default {
components: {
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: {
getCheck() {
if (this.flag) {
this.getDataList();
}
},
// 子级
childHandle(row) {
// 路由参数
......
......@@ -42,6 +42,19 @@
</el-option>
</el-select>
</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
label="备注"
......@@ -79,8 +92,10 @@ export default {
updateDate: "",
remark: "",
tempName: "",
funcIdList: [],
},
options: [],
allFuncList: [],
};
},
computed: {
......@@ -100,6 +115,13 @@ export default {
trigger: "blur",
},
],
funcIdList: [
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},
......@@ -124,6 +146,15 @@ export default {
this.options = res.data;
})
.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() {
......
......@@ -66,8 +66,8 @@
align="center"
></el-table-column>
<el-table-column
prop="creator"
label="创建者"
prop="funcName"
label="已授权"
header-align="center"
align="center"
></el-table-column>
......
......@@ -30,6 +30,19 @@
placeholder="手机号"
></el-input>
</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
label="所属权限"
......@@ -51,7 +64,15 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="身份"
prop="identity"
>
<el-input
v-model="dataForm.identity"
placeholder="身份"
></el-input>
</el-form-item>
<el-form-item
label="身份证号"
prop="userIdno"
......@@ -88,6 +109,7 @@ export default {
userRole: "",
/* caseId: '', */
createDate: "",
gender: "",
},
options: [],
};
......
......@@ -7,6 +7,7 @@
<el-form
:inline="true"
:model="dataForm"
:rules="dataRule"
@keyup.enter.native="getDataList()"
>
<!-- <el-form-item>
......@@ -16,7 +17,7 @@
clearable
></el-input>
</el-form-item> -->
<el-form-item>
<el-form-item prop="mobile">
<el-input
v-model="dataForm.mobile"
placeholder="手机号"
......@@ -24,14 +25,8 @@
></el-input>
</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-button
type="info"
@click="exportHandle()"
>{{ $t('export') }}</el-button>
</el-form-item> -->
<el-form-item>
<el-button
v-if="$hasPermission('fhjw:user:save')"
......@@ -39,6 +34,20 @@
@click="addOrUpdateHandle()"
>{{ $t('add') }}</el-button>
</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-button
v-if="$hasPermission('fhjw:user:delete')"
......@@ -46,6 +55,9 @@
@click="deleteHandle()"
>{{ $t('deleteBatch') }}</el-button>
</el-form-item> -->
<!-- <el-form-item>
<a href="">点击此处下载导入模板</a>
</el-form-item> -->
</el-form>
<el-table
v-loading="dataListLoading"
......@@ -78,6 +90,24 @@
header-align="center"
align="center"
></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
prop="userRole"
label="所属权限"
......@@ -111,12 +141,12 @@
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> -->
>{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
......@@ -143,6 +173,7 @@
<script>
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./user-add-or-update";
import { isEmail, isNumber } from "@/utils/validate";
export default {
mixins: [mixinViewModule],
data() {
......@@ -154,14 +185,83 @@ export default {
deleteURL: "/fhjw/user",
deleteIsBatch: true,
},
datalist: [],
flag: true,
dataForm: {
id: "",
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: {
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>
<style lang="less" scoped>
/deep/.el-upload-list {
display: none;
}
</style>
This diff is collapsed.
<template>
<el-dialog :visible.sync="visible" :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="120px">
<el-form-item prop="name" :label="$t('role.name')">
<el-input v-model="dataForm.name" :placeholder="$t('role.name')"></el-input>
<el-dialog
:visible.sync="visible"
: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="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 prop="remark" :label="$t('role.remark')">
<el-input v-model="dataForm.remark" :placeholder="$t('role.remark')"></el-input>
<el-form-item
prop="remark"
:label="$t('role.remark')"
>
<el-input
v-model="dataForm.remark"
:placeholder="$t('role.remark')"
></el-input>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item size="mini" :label="$t('role.menuList')">
<el-form-item
size="mini"
:label="$t('role.menuList')"
>
<el-tree
:data="menuList"
:props="{ label: 'name', children: 'children' }"
node-key="id"
ref="menuListTree"
accordion
show-checkbox>
show-checkbox
>
</el-tree>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item size="mini" :label="$t('role.deptList')">
<el-form-item
size="mini"
:label="$t('role.deptList')"
>
<el-tree
:data="deptList"
:props="{ label: 'name', children: 'children' }"
node-key="id"
ref="deptListTree"
accordion
show-checkbox>
show-checkbox
>
</el-tree>
</el-form-item>
</el-col>
......@@ -36,113 +67,137 @@
</el-form>
<template slot="footer">
<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>
</el-dialog>
</template>
<script>
import debounce from 'lodash/debounce'
import debounce from "lodash/debounce";
export default {
data () {
data() {
return {
visible: false,
menuList: [],
deptList: [],
dataForm: {
id: '',
name: '',
id: "",
name: "",
menuIdList: [],
deptIdList: [],
remark: ''
}
}
remark: "",
},
};
},
computed: {
dataRule () {
dataRule() {
return {
name: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
]
}
}
{
required: true,
message: this.$t("validate.required"),
trigger: "blur",
},
],
};
},
},
methods: {
init () {
this.visible = true
init() {
this.visible = true;
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
this.$refs.menuListTree.setCheckedKeys([])
this.$refs.deptListTree.setCheckedKeys([])
Promise.all([
this.getMenuList(),
this.getDeptList()
]).then(() => {
this.$refs["dataForm"].resetFields();
this.$refs.menuListTree.setCheckedKeys([]);
this.$refs.deptListTree.setCheckedKeys([]);
Promise.all([this.getMenuList(), this.getDeptList()]).then(() => {
if (this.dataForm.id) {
this.getInfo()
this.getInfo();
}
})
})
});
});
},
// 获取菜单列表
getMenuList () {
return this.$http.get('/sys/menu/select').then(({ data: res }) => {
getMenuList() {
return this.$http
.get("/sys/menu/select")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.menuList = res.data
}).catch(() => {})
this.menuList = res.data;
})
.catch(() => {});
},
// 获取部门列表
getDeptList () {
return this.$http.get('/sys/dept/list').then(({ data: res }) => {
getDeptList() {
return this.$http
.get("/sys/dept/list")
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.deptList = res.data
}).catch(() => {})
this.deptList = res.data;
})
.catch(() => {});
},
// 获取信息
getInfo () {
this.$http.get(`/sys/role/${this.dataForm.id}`).then(({ data: res }) => {
getInfo() {
this.$http
.get(`/sys/role/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.dataForm = {
...this.dataForm,
...res.data
}
this.dataForm.menuIdList.forEach(item => this.$refs.menuListTree.setChecked(item, true))
this.$refs.deptListTree.setCheckedKeys(this.dataForm.deptIdList)
}).catch(() => {})
...res.data,
};
this.dataForm.menuIdList.forEach((item) =>
this.$refs.menuListTree.setChecked(item, true)
);
this.$refs.deptListTree.setCheckedKeys(this.dataForm.deptIdList);
})
.catch(() => {});
},
// 表单提交
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
dataFormSubmitHandle: debounce(
function () {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false
return false;
}
this.dataForm.menuIdList = [
...this.$refs.menuListTree.getHalfCheckedKeys(),
...this.$refs.menuListTree.getCheckedKeys()
]
this.dataForm.deptIdList = this.$refs.deptListTree.getCheckedKeys()
this.$http[!this.dataForm.id ? 'post' : 'put']('/sys/role', this.dataForm).then(({ data: res }) => {
...this.$refs.menuListTree.getCheckedKeys(),
];
this.dataForm.deptIdList = this.$refs.deptListTree.getCheckedKeys();
this.$http[!this.dataForm.id ? "post" : "put"](
"/sys/role",
this.dataForm
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
return this.$message.error(res.msg);
}
this.$message({
message: this.$t('prompt.success'),
type: 'success',
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
}).catch(() => {})
this.visible = false;
this.$emit("refreshDataList");
},
});
})
}, 1000, { 'leading': true, 'trailing': false })
}
}
.catch(() => {});
});
},
1000,
{ leading: true, trailing: false }
),
},
};
</script>
<template>
<el-card shadow="never" class="aui-card--fill">
<el-card
shadow="never"
class="aui-card--fill"
>
<div class="mod-sys__role">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
<el-form-item>
<el-input v-model="dataForm.name" :placeholder="$t('role.name')" clearable></el-input>
<el-form
:inline="true"
: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-button @click="getDataList()">{{ $t('query') }}</el-button>
</el-form-item>
<el-button @click="getCheck()">{{ $t('query') }}</el-button>
</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-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>
<el-table
......@@ -21,15 +41,54 @@
border
@selection-change="dataListSelectionChangeHandle"
@sort-change="dataListSortChangeHandle"
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 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">
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
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">
<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>
<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>
</el-table-column>
</el-table>
......@@ -40,34 +99,75 @@
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle">
@current-change="pageCurrentChangeHandle"
>
</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>
</el-card>
</template>
<script>
import mixinViewModule from '@/mixins/view-module'
import AddOrUpdate from './role-add-or-update'
import { isSpecial } from "@/utils/validate";
import mixinViewModule from "@/mixins/view-module";
import AddOrUpdate from "./role-add-or-update";
export default {
mixins: [mixinViewModule],
data () {
data() {
return {
mixinViewModuleOptions: {
getDataListURL: '/sys/role/page',
getDataListURL: "/sys/role/page",
getDataListIsPage: true,
deleteURL: '/sys/role',
deleteIsBatch: true
deleteURL: "/sys/role",
deleteIsBatch: true,
},
flag: true,
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: {
AddOrUpdate
AddOrUpdate,
},
methods: {
getCheck() {
if (this.flag) {
this.getDataList();
}
}
},
},
};
</script>
This diff is collapsed.
......@@ -2,12 +2,23 @@
<div class="aui-wrapper aui-page__login">
<div class="aui-content__wrapper">
<main class="aui-content">
<div class="login-header">
<!-- <h2 class="login-brand">{{ $t('brand.lg') }}</h2> -->
<div
class="login-header"
style="display:flex"
>
<img
src="../../assets/img/logo.png"
src="../../assets/img/logo_icon.png"
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 class="login-body">
<h3 class="login-title">{{ $t('login.title') }}</h3>
......@@ -177,6 +188,9 @@ export default {
if (!valid) {
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
.post("/login", this.dataForm)
.then(({ data: res }) => {
......@@ -196,3 +210,8 @@ export default {
},
};
</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