Merge branch 'dev' of https://git.cloud.tencent.com/joylink/jl-nclient into dev
This commit is contained in:
commit
442b3fd686
@ -40,5 +40,10 @@ export default {
|
||||
codeHasExist: 'Coding already exists',
|
||||
formartError: 'The format is incorrect, only characters/numbers/_',
|
||||
createDictionaryFailed: 'Failed to create dictionary',
|
||||
updateDictionaryFailed: 'Failed to update dictionary'
|
||||
updateDictionaryFailed: 'Failed to update dictionary',
|
||||
createDetailFailed: 'Failed to create details',
|
||||
updateDetailFailed: 'Failed to update details',
|
||||
addFailed: 'Failure to add',
|
||||
updateFailed: 'Failure to update'
|
||||
|
||||
};
|
||||
|
@ -52,6 +52,7 @@ export default {
|
||||
transferQRCode: 'Transfer QRCode',
|
||||
today: 'Today',
|
||||
yesterday: 'Yesterday',
|
||||
addOrder: 'AddOrder',
|
||||
aWeekAgo: 'A week ago',
|
||||
updateOrder: 'Update order',
|
||||
renewOrder: 'Renew order',
|
||||
@ -78,7 +79,8 @@ export default {
|
||||
unitOfTime: 'Unit of time',
|
||||
trialTime: 'Trial time',
|
||||
distributionUser: 'Distribution user',
|
||||
orderNumber: 'OrderNumber',
|
||||
orderNumber: 'Order Number',
|
||||
select: 'Select',
|
||||
sourcesOfInformation: 'Sources of information',
|
||||
distributePermission: 'Distribute permission',
|
||||
orderCreation: 'Order creation',
|
||||
|
@ -181,6 +181,10 @@ export default {
|
||||
goodsDescribtionInput: 'Please enter product description',
|
||||
userNameInput: 'Please enter user name',
|
||||
permissionTypeInput: 'Please select the permission type',
|
||||
timeInput: 'Please enter the time',
|
||||
chooseUser: 'Please select the user',
|
||||
pleaseInputLessonName: 'Please enter the course name',
|
||||
pleaseSelectTraining: 'Please select training',
|
||||
|
||||
maxScaling: '(The maximum scale is 8 steps)',
|
||||
skinCodingInput: 'Please enter skin code',
|
||||
|
@ -11,8 +11,8 @@ export default {
|
||||
updateSuccess: 'Update successful',
|
||||
destory: 'Destory',
|
||||
simulationGroup: 'Simulation Group',
|
||||
username: 'User Name',
|
||||
phoneNumber: 'Cell-phone Number',
|
||||
userName: 'User Name',
|
||||
mobile: 'Cell-phone Number',
|
||||
skinCode: 'Skin Code',
|
||||
prdType: 'Product Type',
|
||||
simulationType: 'Simulation Type',
|
||||
@ -21,5 +21,34 @@ export default {
|
||||
isError: 'Is Error',
|
||||
isSuspend: 'Is Suspend',
|
||||
isDrivingAsplanned: 'Whether to drive as planned',
|
||||
delUserSimulationIsContinue: 'This operation will delete the user simulation data. Do you want to continue?'
|
||||
delUserSimulationIsContinue: 'This operation will delete the user simulation data. Do you want to continue?',
|
||||
createDetail: 'Create details',
|
||||
editDetail: 'Editorial details',
|
||||
mapName: 'Map Name',
|
||||
trainingName: 'Training Name',
|
||||
trainingUseTime: 'Training Time',
|
||||
minute: 'Minute',
|
||||
second: 'Second',
|
||||
createSimulationTitle: 'Create Simulation Information',
|
||||
addSuccess: 'Added Successfully',
|
||||
pleaseInputNames: 'Please enter your nickname/name/cell phone number',
|
||||
examUser: 'Examination Users',
|
||||
examScore: 'Examination Score',
|
||||
examResult: 'Examination Results',
|
||||
examName: 'Paper Name',
|
||||
delExamResultIsContinue: 'This operation will delete the test result. Do you want to continue?',
|
||||
editExamDetail: 'Edit exam details',
|
||||
subscribeMap: 'Subscribe',
|
||||
roles: 'Roles',
|
||||
email: 'Email',
|
||||
nickname: 'Nickname',
|
||||
delTypeIsContinue: 'This operation will delete the type. Do you want to continue?',
|
||||
permission: 'Permission',
|
||||
editUserPermission: 'Edit User Rights',
|
||||
lessonName: 'Lesson Name',
|
||||
selectTraining: 'Selection Training',
|
||||
createUserTraining: 'Creating User Training',
|
||||
editTrainingDetail: 'Editor Training Details',
|
||||
trainingTime: 'Training duration'
|
||||
|
||||
};
|
||||
|
@ -40,6 +40,10 @@ export default {
|
||||
codeHasExist: '编码已存在',
|
||||
formartError: '格式不正确,只能是字符/数字/_',
|
||||
createDictionaryFailed: '创建字典失败',
|
||||
updateDictionaryFailed: '更新字典失败'
|
||||
updateDictionaryFailed: '更新字典失败',
|
||||
createDetailFailed: '创建明细失败',
|
||||
updateDetailFailed: '更新明细失败',
|
||||
addFailed: '添加失败',
|
||||
updateFailed: '更新失败'
|
||||
|
||||
};
|
||||
|
@ -83,5 +83,6 @@ export default {
|
||||
sourcesOfInformation: '信息来源',
|
||||
distributePermission: '权限分发',
|
||||
orderCreation: '订单创建',
|
||||
select: '选择',
|
||||
chooseGoods: '选择商品'
|
||||
};
|
||||
|
@ -180,6 +180,10 @@ export default {
|
||||
goodsDescribtionInput: '请输入商品描述',
|
||||
userNameInput: '请输入用户名称',
|
||||
permissionTypeInput: '请选择权限类型',
|
||||
timeInput: '请输入时长',
|
||||
chooseUser: '请选择用户',
|
||||
pleaseInputLessonName: '请输入课程名称',
|
||||
pleaseSelectTraining: '请选择实训',
|
||||
|
||||
maxScaling: '(缩放比例最大为8级)',
|
||||
skinCodingInput: '请输入皮肤编码',
|
||||
|
@ -11,8 +11,8 @@ export default {
|
||||
updateSuccess: '更新成功',
|
||||
destory: '销 毁',
|
||||
simulationGroup: '仿真Group',
|
||||
username: '用户名',
|
||||
phoneNumber: '手机号',
|
||||
userName: '用户名',
|
||||
mobile: '手机号',
|
||||
skinCode: '皮肤编号',
|
||||
prdType: '产品类型',
|
||||
simulationType: '仿真类型',
|
||||
@ -21,5 +21,34 @@ export default {
|
||||
isError: '是否错误',
|
||||
isSuspend: '是否暂停',
|
||||
isDrivingAsplanned: '是否按计划行车',
|
||||
delUserSimulationIsContinue: '此操作将删除此用户仿真数据, 是否继续?'
|
||||
delUserSimulationIsContinue: '此操作将删除此用户仿真数据, 是否继续?',
|
||||
createDetail: '创建明细',
|
||||
editDetail: '编辑明细',
|
||||
mapName: '地图名称',
|
||||
trainingName: '实训名称',
|
||||
trainingUseTime: '实训用时',
|
||||
minute: '分',
|
||||
second: '秒',
|
||||
createSimulationTitle: '创建仿真信息',
|
||||
addSuccess: '添加成功',
|
||||
pleaseInputNames: '请输入昵称/名字/手机号',
|
||||
examUser: '考试用户',
|
||||
examScore: '考试成绩',
|
||||
examResult: '考试结果',
|
||||
examName: '试卷名称',
|
||||
delExamResultIsContinue: '此操作将删除此考试结果, 是否继续?',
|
||||
editExamDetail: '编辑考试详情',
|
||||
subscribeMap: '订阅地图',
|
||||
roles: '角色',
|
||||
email: '邮箱',
|
||||
nickname: '昵称',
|
||||
delTypeIsContinue: '此操作将删除该类型, 是否继续?',
|
||||
permission: '权限',
|
||||
editUserPermission: '编辑用户权限',
|
||||
lessonName: '课程名称',
|
||||
selectTraining: '选择实训',
|
||||
createUserTraining: '创建用户实训',
|
||||
editTrainingDetail: '编辑实训详情',
|
||||
trainingTime: '实训时长'
|
||||
|
||||
};
|
||||
|
@ -40,12 +40,12 @@ export default {
|
||||
const form = {
|
||||
labelWidth: '60px',
|
||||
items: [
|
||||
{ prop: 'code', label: '编码', type: 'text', required: true, disabled: !isAdd },
|
||||
{ prop: 'name', label: '名称', type: 'text', required: true },
|
||||
{ prop: 'code', label: this.$t('system.code'), type: 'text', required: true, disabled: !isAdd },
|
||||
{ prop: 'name', label: this.$t('system.name'), type: 'text', required: true },
|
||||
{
|
||||
prop: 'status', label: '状态', type: 'select', required: true, options: this.$ConstSelect.Status
|
||||
prop: 'status', label: this.$t('system.status'), type: 'select', required: true, options: this.$ConstSelect.Status
|
||||
},
|
||||
{ prop: 'remarks', label: '备注', type: 'textarea', required: false }
|
||||
{ prop: 'remarks', label: this.$t('system.remarks'), type: 'textarea', required: false }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
@ -53,21 +53,21 @@ export default {
|
||||
rules() {
|
||||
const crules = {
|
||||
name: [
|
||||
{ required: true, message: '请输入名称', trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: '长度在 1 到 25 个字符', trigger: 'blur' }
|
||||
{ required: true, message: this.$t('rules.pleaseInputName'), trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' }
|
||||
],
|
||||
status: [
|
||||
{ required: true, message: '请选择状态', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.pleaseSelectStatus'), trigger: 'change' }
|
||||
],
|
||||
remarks: [
|
||||
{ max: 50, message: '不能超过 50 个字符', trigger: 'blur' }
|
||||
{ max: 50, message: this.$t('rules.strLengthNotExceed50'), trigger: 'blur' }
|
||||
]
|
||||
};
|
||||
if (this.type === 'ADD') {
|
||||
return Object.assign(crules, {
|
||||
code: [
|
||||
{ required: true, message: '请输入编码', trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: '长度在 1 到 25 个字符', trigger: 'blur' },
|
||||
{ required: true, message: this.$t('rules.pleaseInputCode'), trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' },
|
||||
{ validator: this.validateCode, trigger: 'blur' }
|
||||
]
|
||||
});
|
||||
@ -77,25 +77,25 @@ export default {
|
||||
},
|
||||
title() {
|
||||
if (this.type === 'ADD') {
|
||||
return '创建明细';
|
||||
return this.$t('system.createDetail');
|
||||
} else {
|
||||
return '编辑明细';
|
||||
return this.$t('system.editDetail');
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
validateCode(rule, value, callback) {
|
||||
if (!validateCharCode(value)) {
|
||||
return callback(new Error('格式不正确,只能是字符/数字/_'));
|
||||
return callback(new Error(this.$t('error.formartError')));
|
||||
} else {
|
||||
checkDicDetailCodeExist(this.dicId, value).then(response => {
|
||||
if (response.data) {
|
||||
return callback(new Error('编码已存在'));
|
||||
return callback(new Error(this.$t('error.codeHasExist')));
|
||||
} else {
|
||||
return callback();
|
||||
}
|
||||
}).catch(() => {
|
||||
return callback(new Error('服务异常'));
|
||||
return callback(new Error(this.$t('error.serviceException')));
|
||||
});
|
||||
}
|
||||
},
|
||||
@ -121,21 +121,21 @@ export default {
|
||||
create() {
|
||||
const self = this;
|
||||
create(this.dicId, this.formModel).then(response => {
|
||||
self.$message.success('创建字典目录成功');
|
||||
self.$message.success(this.$t('system.createSuccess'));
|
||||
self.handleClose();
|
||||
self.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
self.$message.error('创建字典目录失败:' + error.message);
|
||||
self.$message.error(`${this.$t('error.createDetailFailed')}:${error.message}`);
|
||||
});
|
||||
},
|
||||
update() {
|
||||
const self = this;
|
||||
update(this.dicId, this.formModel).then(response => {
|
||||
self.$message.success('更新字典目录成功');
|
||||
self.$message.success(this.$t('system.updateSuccess'));
|
||||
self.handleClose();
|
||||
self.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
self.$message.error('更新字典目录失败:' + error.message);
|
||||
self.$message.error(`${this.$t('error.updateDetailFailed')}:${error.message}`);
|
||||
});
|
||||
},
|
||||
handleClose(done) {
|
||||
|
@ -28,11 +28,11 @@ export default {
|
||||
},
|
||||
userName: {
|
||||
type: 'text',
|
||||
label: this.$t('system.username')
|
||||
label: this.$t('system.userName')
|
||||
},
|
||||
mobile: {
|
||||
type: 'text',
|
||||
label: this.$t('system.phoneNumber')
|
||||
label: this.$t('system.mobile')
|
||||
},
|
||||
skinCode: {
|
||||
type: 'select',
|
||||
@ -64,11 +64,11 @@ export default {
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('system.username'),
|
||||
title: this.$t('system.userName'),
|
||||
prop: 'creator.name'
|
||||
},
|
||||
{
|
||||
title: this.$t('system.phoneNumber'),
|
||||
title: this.$t('system.mobile'),
|
||||
prop: 'creator.mobile'
|
||||
},
|
||||
{
|
||||
@ -170,7 +170,7 @@ export default {
|
||||
return sessionId;
|
||||
},
|
||||
handleDelete(index, row) {
|
||||
this.$confirm(this.$t('global.delUserSimulationIsContinue'), this.$t('global.tips'), {
|
||||
this.$confirm(this.$t('system.delUserSimulationIsContinue'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
|
@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<el-dialog :title="'编辑用户权限'" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center>
|
||||
<el-dialog :title="$t('system.editUserPermission')" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center>
|
||||
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="doSave">确 定</el-button>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
|
||||
<el-button @click="dialogVisible = false">{{ $t('global.cancel') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -31,11 +31,11 @@ export default {
|
||||
const form = {
|
||||
labelWidth: '60px',
|
||||
items: [
|
||||
{ prop: 'name', label: '名称', type: 'text', required: true, disabled: true },
|
||||
{ prop: 'name', label: this.$t('system.name'), type: 'text', required: true, disabled: true },
|
||||
// { prop: 'nickname', label: '昵称', type: 'text', required: true },
|
||||
// { prop: 'mobile', label: '电话', type: 'text', required: true },
|
||||
// { prop: 'email', label: '邮箱', type: 'text' },
|
||||
{ prop: 'roles', label: '权限', type: 'select', required: true, options: this.$ConstSelect.roleList, multiple: true }
|
||||
{ prop: 'roles', label: this.$t('system.permission'), type: 'select', required: true, options: this.$ConstSelect.roleList, multiple: true }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
@ -43,11 +43,11 @@ export default {
|
||||
rules() {
|
||||
const crules = {
|
||||
name: [
|
||||
{ required: true, message: '请输入名称', trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: '长度在 1 到 25 个字符', trigger: 'blur' }
|
||||
{ required: true, message: this.$t('rules.pleaseInputName'), trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' }
|
||||
],
|
||||
status: [
|
||||
{ required: true, message: '请选择状态', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.pleaseSelectStatus'), trigger: 'change' }
|
||||
]
|
||||
};
|
||||
return crules;
|
||||
@ -76,11 +76,11 @@ export default {
|
||||
update() {
|
||||
const self = this;
|
||||
putRoles(this.formModel).then(response => {
|
||||
self.$message.success('修改成功');
|
||||
self.$message.success(this.$t('system.updateSuccess'));
|
||||
self.handleClose();
|
||||
self.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
self.$message.error('修改失败:' + error.message);
|
||||
self.$message.error(`${this.$t('error.updateFailed')}: ${error.message}`);
|
||||
});
|
||||
},
|
||||
handleClose(done) {
|
||||
|
@ -29,11 +29,11 @@ export default {
|
||||
queryObject: {
|
||||
name: {
|
||||
type: 'text',
|
||||
label: '名称'
|
||||
label: this.$t('system.name')
|
||||
},
|
||||
roles: {
|
||||
type: 'select',
|
||||
label: '角色',
|
||||
label: this.$t('system.roles'),
|
||||
config: {
|
||||
data: this.$ConstSelect.roleList
|
||||
}
|
||||
@ -47,23 +47,23 @@ export default {
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: '名称',
|
||||
title: this.$t('system.name'),
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: '昵称',
|
||||
title: this.$t('system.nickname'),
|
||||
prop: 'nickname'
|
||||
},
|
||||
{
|
||||
title: '电话',
|
||||
title: this.$t('system.mobile'),
|
||||
prop: 'mobile'
|
||||
},
|
||||
{
|
||||
title: '邮箱',
|
||||
title: this.$t('system.email'),
|
||||
prop: 'email'
|
||||
},
|
||||
{
|
||||
title: '角色',
|
||||
title: this.$t('system.roles'),
|
||||
prop: 'roles',
|
||||
type: 'tagMore',
|
||||
columnValue: (row) => { return this.$convertField(row.roles, this.$ConstSelect.roleList, ['value', 'label'], true); },
|
||||
@ -71,15 +71,15 @@ export default {
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: '操作',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: '编辑',
|
||||
name: this.$t('global.edit'),
|
||||
handleClick: this.handleUserEdit
|
||||
},
|
||||
{
|
||||
name: '订阅地图',
|
||||
name: this.$t('system.subscribeMap'),
|
||||
handleClick: this.handleMapCorrelation,
|
||||
type: 'danger'
|
||||
}
|
||||
@ -100,9 +100,9 @@ export default {
|
||||
|
||||
// 删除
|
||||
handleUserDelete(index, row) {
|
||||
this.$confirm('此操作将删除该类型, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
this.$confirm(this.$t('system.delTypeIsContinue'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
// delPublishMap(row.id).then(response => {
|
||||
|
@ -2,8 +2,8 @@
|
||||
<el-dialog :title="title" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center>
|
||||
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="doSave">确 定</el-button>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
|
||||
<el-button @click="dialogVisible = false">{{ $t('global.cancel') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -34,12 +34,12 @@ export default {
|
||||
computed: {
|
||||
form() {
|
||||
const form = {
|
||||
labelWidth: '100px',
|
||||
labelWidth: '160px',
|
||||
items: [
|
||||
{ prop: 'userName', label: '用户名称', type: 'text', required: false, disabled: true },
|
||||
{ prop: 'examName', label: '试卷名称', type: 'text', required: true, disabled: true },
|
||||
{ prop: 'score', label: '考试分数', type: 'text', required: true },
|
||||
{ prop: 'result', label: '考试结果', type: 'select', required: true, options: this.$ConstSelect.examResultList }
|
||||
{ prop: 'userName', label: this.$t('system.userName'), type: 'text', required: false, disabled: true },
|
||||
{ prop: 'examName', label: this.$t('system.examName'), type: 'text', required: true, disabled: true },
|
||||
{ prop: 'score', label: this.$t('system.examScore'), type: 'text', required: true },
|
||||
{ prop: 'result', label: this.$t('system.examResult'), type: 'select', required: true, options: this.$ConstSelect.examResultList }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
@ -47,16 +47,16 @@ export default {
|
||||
rules() {
|
||||
const crules = {
|
||||
score: [
|
||||
{ required: true, message: '请输入名称', trigger: 'blur' }
|
||||
{ required: true, message: this.$t('rules.pleaseInputName'), trigger: 'blur' }
|
||||
],
|
||||
result: [
|
||||
{ required: true, message: '请选择状态', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.pleaseSelectStatus'), trigger: 'change' }
|
||||
]
|
||||
};
|
||||
return crules;
|
||||
},
|
||||
title() {
|
||||
return '编辑考试详情';
|
||||
return this.$t('system.editExamDetail');
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -79,11 +79,11 @@ export default {
|
||||
update() {
|
||||
const self = this;
|
||||
updateExam(this.formModel).then(response => {
|
||||
self.$message.success('修改成功!');
|
||||
self.$message.success(this.$t('system.updateSuccess'));
|
||||
self.handleClose();
|
||||
self.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
self.$message.error('修改失败!' + error.message);
|
||||
self.$message.error(`${this.$t('error.updateFailed')}: ${error.message}`);
|
||||
});
|
||||
},
|
||||
handleClose(done) {
|
||||
|
@ -22,20 +22,20 @@ export default {
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
labelWidth: '150px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
examName: {
|
||||
type: 'text',
|
||||
label: '试卷名称'
|
||||
label: this.$t('system.examName')
|
||||
},
|
||||
userName: {
|
||||
type: 'text',
|
||||
label: '考试用户'
|
||||
label: this.$t('system.examUser')
|
||||
},
|
||||
result: {
|
||||
type: 'select',
|
||||
label: '考试结果',
|
||||
label: this.$t('system.examResult'),
|
||||
config: {
|
||||
data: this.$ConstSelect.examResultList
|
||||
}
|
||||
@ -49,11 +49,11 @@ export default {
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: '试卷名称',
|
||||
title: this.$t('system.examName'),
|
||||
prop: 'examName'
|
||||
},
|
||||
{
|
||||
title: '考试结果',
|
||||
title: this.$t('system.examResult'),
|
||||
prop: 'result',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.result, this.$ConstSelect.examResultList, ['value', 'label']); },
|
||||
@ -67,28 +67,28 @@ export default {
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '考试成绩',
|
||||
title: this.$t('system.examScore'),
|
||||
prop: 'score'
|
||||
},
|
||||
{
|
||||
title: '考试用户',
|
||||
title: this.$t('system.examUser'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: '用户手机号',
|
||||
title: this.$t('system.mobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: '操作',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: '编辑',
|
||||
name: this.$t('global.edit'),
|
||||
handleClick: this.edit
|
||||
},
|
||||
{
|
||||
name: '删除',
|
||||
name: this.$t('global.delete'),
|
||||
handleClick: this.handleDelete,
|
||||
type: 'danger'
|
||||
}
|
||||
@ -115,17 +115,17 @@ export default {
|
||||
|
||||
// 删除
|
||||
handleDelete(index, row) {
|
||||
this.$confirm('此操作将删除此考试结果, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
this.$confirm(this.$t('system.delExamResultIsContinue'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
delPublishExam(row.id).then(response => {
|
||||
this.$message.success('删除成功');
|
||||
this.$message.success(this.$t('system.deleteSuccess'));
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.reloadTable();
|
||||
this.$messageBox('删除失败');
|
||||
this.$messageBox(this.$t('error.deleteFailed'));
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -2,8 +2,8 @@
|
||||
<el-dialog :title="title" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center>
|
||||
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="doSave">确 定</el-button>
|
||||
<el-button @click="handleClose">取 消</el-button>
|
||||
<el-button type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
|
||||
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -41,12 +41,12 @@ export default {
|
||||
computed: {
|
||||
form() {
|
||||
const form = {
|
||||
labelWidth: '100px',
|
||||
labelWidth: '120px',
|
||||
items: [
|
||||
{ prop: 'mapId', label: '地图名称', type: 'select', required: true, options: this.LessonList, change: true, onChange: this.mapChange },
|
||||
{ prop: 'mapPrdCode', label: '产品名称', type: 'select', required: true, options: this.mapPrdList, placeholder: '请选择产品' },
|
||||
{ prop: 'userName', label: '用户名称', type: 'complete', required: false, querySearchAsync: this.querySearchAsync, handleSelect: this.prdSelect, placeholder: '请输入昵称/名字/手机号' },
|
||||
{ prop: 'duration', label: '实训时长', type: 'text', rightWidth: true, required: true, message: 's' }
|
||||
{ prop: 'mapId', label: this.$t('system.mapName'), type: 'select', required: true, options: this.LessonList, change: true, onChange: this.mapChange, placeholder: this.$t('rules.mapInput') },
|
||||
{ prop: 'mapPrdCode', label: this.$t('system.productName'), type: 'select', required: true, options: this.mapPrdList, placeholder: this.$t('rules.productInput') },
|
||||
{ prop: 'userName', label: this.$t('system.userName'), type: 'complete', required: false, querySearchAsync: this.querySearchAsync, handleSelect: this.prdSelect, placeholder: this.$t('system.pleaseInputNames') },
|
||||
{ prop: 'duration', label: this.$t('system.trainingUseTime'), type: 'text', rightWidth: true, required: true, message: 's' }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
@ -54,22 +54,22 @@ export default {
|
||||
rules() {
|
||||
const crules = {
|
||||
mapId: [
|
||||
{ required: true, message: '请选择地图', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.mapInput'), trigger: 'change' }
|
||||
],
|
||||
userName: [
|
||||
{ required: true, message: '请选择用户', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.chooseUser'), trigger: 'change' }
|
||||
],
|
||||
mapPrdCode: [
|
||||
{ required: true, message: '请选择产品', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.productInput'), trigger: 'change' }
|
||||
],
|
||||
duration: [
|
||||
{ required: true, message: '请输入时长', trigger: 'blur' }
|
||||
{ required: true, message: this.$t('rules.timeInput'), trigger: 'blur' }
|
||||
]
|
||||
};
|
||||
return crules;
|
||||
},
|
||||
title() {
|
||||
return '创建仿真信息';
|
||||
return this.$t('system.createSimulationTitle');
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -113,7 +113,7 @@ export default {
|
||||
});
|
||||
cb(results);
|
||||
} catch (error) {
|
||||
console.error(error, '查询用户list');
|
||||
console.error(error);
|
||||
cb(results);
|
||||
}
|
||||
} else {
|
||||
@ -148,13 +148,6 @@ export default {
|
||||
},
|
||||
show(data) {
|
||||
this.dialogVisible = true;
|
||||
// this.formModel = {
|
||||
// mapId: '',
|
||||
// mapPrdCode: '',
|
||||
// userId: '',
|
||||
// userName: '',
|
||||
// duration: '',
|
||||
// };
|
||||
},
|
||||
doSave() {
|
||||
const self = this;
|
||||
@ -172,14 +165,14 @@ export default {
|
||||
};
|
||||
if (params.userId) {
|
||||
postSimulationStats(params).then(response => {
|
||||
self.$message.success('新增成功!');
|
||||
self.$message.success(this.$t('system.addSuccess'));
|
||||
self.handleClose();
|
||||
self.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
self.$message.error('新增失败!' + error.message);
|
||||
self.$message.error(this.$t('error.addFailed') + error.message);
|
||||
});
|
||||
} else {
|
||||
this.$message.error('请选择用户');
|
||||
this.$message.error(this.$t('rules.chooseUser'));
|
||||
}
|
||||
},
|
||||
handleClose(done) {
|
||||
|
@ -29,16 +29,16 @@ export default {
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
trainingName: {
|
||||
type: 'text',
|
||||
label: '实训名称'
|
||||
label: this.$t('system.trainingName')
|
||||
},
|
||||
userName: {
|
||||
type: 'text',
|
||||
label: '用户名'
|
||||
label: this.$t('system.userName')
|
||||
}
|
||||
}
|
||||
|
||||
@ -49,41 +49,41 @@ export default {
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: '用户名称',
|
||||
title: this.$t('system.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: '用户手机号',
|
||||
title: this.$t('system.mobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: '地图名称',
|
||||
title: this.$t('system.mapName'),
|
||||
prop: 'mapName'
|
||||
},
|
||||
{
|
||||
title: '实训用时',
|
||||
title: this.$t('system.trainingUseTime'),
|
||||
prop: 'duration',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.computation(row.duration); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
title: '产品名称',
|
||||
title: this.$t('system.productName'),
|
||||
prop: 'mapPrdName'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: '操作',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
hide: (row) => { return !row.fake; },
|
||||
buttons: [
|
||||
{
|
||||
name: '编辑',
|
||||
name: this.$t('global.edit'),
|
||||
handleClick: this.edit,
|
||||
showControl: (row) => { return row.fake; }
|
||||
},
|
||||
{
|
||||
name: '删除',
|
||||
name: this.$t('global.delete'),
|
||||
handleClick: this.handleDelete,
|
||||
type: 'danger',
|
||||
showControl: (row) => { return row.fake; }
|
||||
@ -92,7 +92,7 @@ export default {
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: '新增', handler: this.createTraining }
|
||||
{ text: this.$t('global.add'), handler: this.createTraining }
|
||||
]
|
||||
},
|
||||
currentModel: {}
|
||||
@ -121,9 +121,9 @@ export default {
|
||||
const f = parseInt(fieldValue / 60);
|
||||
const s = fieldValue % 60;
|
||||
if (f > 0) {
|
||||
return `${f}分${s}秒`;
|
||||
return `${f} ${this.$t('system.minute')} ${s} ${this.$t('system.second')}`;
|
||||
} else {
|
||||
return `${s}秒`;
|
||||
return `${s} ${this.$t('system.second')}`;
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -135,17 +135,17 @@ export default {
|
||||
|
||||
// 删除
|
||||
handleDelete(index, row) {
|
||||
this.$confirm('此操作将删除此用户仿真数据, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
this.$confirm(this.$t('system.delUserSimulationIsContinue'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
deleteSimulationStats(row.id).then(response => {
|
||||
this.$message.success('删除成功');
|
||||
this.$message.success(this.$t('system.deleteSuccess'));
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.reloadTable();
|
||||
this.$messageBox('删除失败');
|
||||
this.$messageBox(this.$t('error.deleteFailed'));
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -3,8 +3,8 @@
|
||||
<el-dialog :title="title" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center>
|
||||
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="doSave">确 定</el-button>
|
||||
<el-button @click="handleClose">取 消</el-button>
|
||||
<el-button type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
|
||||
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<add-training ref="addTraining" @selectTrain="selectTrain" />
|
||||
@ -48,12 +48,12 @@ export default {
|
||||
form() {
|
||||
this.type === 'ADD';
|
||||
const form = {
|
||||
labelWidth: '100px',
|
||||
labelWidth: '150px',
|
||||
items: [
|
||||
{ prop: 'lessonId', label: '课程名称', type: 'select', required: true, options: this.LessonList },
|
||||
{ prop: 'trainingName', label: '实训名称', type: 'text', required: true, rightWidth: true, disabled: true, buttontip: '选择实训', buttonClick: this.buttonClick, placeholder: '请选择实训' },
|
||||
{ prop: 'userName', label: '用户名称', type: 'complete', required: false, querySearchAsync: this.querySearchAsync, handleSelect: this.prdSelect, placeholder: '请输入昵称/名字/手机号' },
|
||||
{ prop: 'duration', label: '实训时长', type: 'text', required: true, rightWidth: true, message: 's' }
|
||||
{ prop: 'lessonId', label: this.$t('system.lessonName'), type: 'select', required: true, options: this.LessonList },
|
||||
{ prop: 'trainingName', label: this.$t('system.trainingName'), type: 'text', required: true, rightWidth: true, disabled: true, buttontip: this.$t('system.selectTraining'), buttonClick: this.buttonClick, placeholder: this.$t('rules.pleaseSelectTraining') },
|
||||
{ prop: 'userName', label: this.$t('system.userName'), type: 'complete', required: false, querySearchAsync: this.querySearchAsync, handleSelect: this.prdSelect, placeholder: this.$t('system.pleaseInputNames') },
|
||||
{ prop: 'duration', label: this.$t('system.trainingTime'), type: 'text', required: true, rightWidth: true, message: 's' }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
@ -61,22 +61,22 @@ export default {
|
||||
rules() {
|
||||
const crules = {
|
||||
lessonId: [
|
||||
{ required: true, message: '请输入教学名称', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.pleaseInputLessonName'), trigger: 'change' }
|
||||
],
|
||||
trainingName: [
|
||||
{ required: true, message: '请选择实训', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.pleaseSelectTraining'), trigger: 'change' }
|
||||
],
|
||||
userName: [
|
||||
{ required: true, message: '请输入用户名称', trigger: 'change' }
|
||||
{ required: true, message: this.$t('rules.userNameInput'), trigger: 'change' }
|
||||
],
|
||||
duration: [
|
||||
{ required: true, message: '请输入时长', trigger: 'blur' }
|
||||
{ required: true, message: this.$t('rules.timeInput'), trigger: 'blur' }
|
||||
]
|
||||
};
|
||||
return crules;
|
||||
},
|
||||
title() {
|
||||
return '创建用户实训';
|
||||
return this.$t('system.createUserTraining');
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -139,14 +139,6 @@ export default {
|
||||
},
|
||||
show(data) {
|
||||
this.dialogVisible = true;
|
||||
// this.formModel = {
|
||||
// lessonId: '',
|
||||
// trainingId: '',
|
||||
// trainingName: '',
|
||||
// userId: '',
|
||||
// userName: '',
|
||||
// duration: '',
|
||||
// };
|
||||
},
|
||||
doSave() {
|
||||
const self = this;
|
||||
@ -158,14 +150,14 @@ export default {
|
||||
const self = this;
|
||||
if (this.formModel.userId) {
|
||||
addUserTraining(this.formModel).then(response => {
|
||||
self.$message.success('创建成功!');
|
||||
self.$message.success(this.$t('system.addSuccess'));
|
||||
self.handleClose();
|
||||
self.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
self.$message.error('创建失败!' + error.message);
|
||||
self.$message.error(this.$t('error.addFailed') + error.message);
|
||||
});
|
||||
} else {
|
||||
self.$message.error('请选择用户');
|
||||
self.$message.error(this.$t('rules.chooseUser'));
|
||||
}
|
||||
},
|
||||
handleClose(done) {
|
||||
|
@ -17,8 +17,8 @@
|
||||
</el-tree>
|
||||
</el-scrollbar>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" :disabled="disabled" @click="doSave">确 定</el-button>
|
||||
<el-button @click="handleClose">取 消</el-button>
|
||||
<el-button type="primary" :disabled="disabled" @click="doSave">{{ $t('global.confirm') }}</el-button>
|
||||
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -34,7 +34,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
dialogVisibles: false,
|
||||
title: '选择实训',
|
||||
title: this.$t('system.selectTraining'),
|
||||
treeData: [{
|
||||
children: [],
|
||||
name: ''
|
||||
|
@ -2,8 +2,8 @@
|
||||
<el-dialog :title="title" :visible.sync="dialogVisible" width="30%" :before-close="handleClose" center>
|
||||
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="doSave">确 定</el-button>
|
||||
<el-button @click="handleClose">取 消</el-button>
|
||||
<el-button type="primary" @click="doSave">{{ $t('global.confirm') }}</el-button>
|
||||
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
@ -37,10 +37,10 @@ export default {
|
||||
const form = {
|
||||
labelWidth: '100px',
|
||||
items: [
|
||||
{ prop: 'lessonName', label: '教学名称', type: 'text', required: false, disabled: true },
|
||||
{ prop: 'trainingName', label: '实训名称', type: 'text', required: true, disabled: true },
|
||||
{ prop: 'userName', label: '用户名称', type: 'text', required: true, disabled: true },
|
||||
{ prop: 'duration', label: '实训时长', type: 'text', required: true, rightWidth: true, message: 's' }
|
||||
{ prop: 'lessonName', label: this.$t('system.lessonName'), type: 'text', required: false, disabled: true },
|
||||
{ prop: 'trainingName', label: this.$t('system.trainingName'), type: 'text', required: true, disabled: true },
|
||||
{ prop: 'userName', label: this.$t('system.userName'), type: 'text', required: true, disabled: true },
|
||||
{ prop: 'duration', label: this.$t('system.trainingTime'), type: 'text', required: true, rightWidth: true, message: 's' }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
@ -48,13 +48,13 @@ export default {
|
||||
rules() {
|
||||
const crules = {
|
||||
duration: [
|
||||
{ required: true, message: '请输入时长', trigger: 'blur' }
|
||||
{ required: true, message: this.$t('rules.timeInput'), trigger: 'blur' }
|
||||
]
|
||||
};
|
||||
return crules;
|
||||
},
|
||||
title() {
|
||||
return '编辑实训详情';
|
||||
return this.$t('system.editTrainingDetail');
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -67,7 +67,6 @@ export default {
|
||||
userName: data.userName,
|
||||
trainingName: data.trainingName,
|
||||
duration: data.duration
|
||||
// trainingCount: data.trainingCount
|
||||
};
|
||||
}
|
||||
},
|
||||
@ -84,11 +83,11 @@ export default {
|
||||
duration: this.formModel.duration
|
||||
};
|
||||
putUserTraining(param).then(response => {
|
||||
self.$message.success('修改成功!');
|
||||
self.$message.success(this.$t('system.updateSuccess'));
|
||||
self.handleClose();
|
||||
self.$emit('reloadTable');
|
||||
}).catch(error => {
|
||||
self.$message.error('修改失败!' + error.message);
|
||||
self.$message.error(`${this.$t('error.updateFailed')}: ${error.message}`);
|
||||
});
|
||||
},
|
||||
handleClose(done) {
|
||||
|
@ -24,16 +24,16 @@ export default {
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
trainingName: {
|
||||
type: 'text',
|
||||
label: '实训名称'
|
||||
label: this.$t('system.trainingName')
|
||||
},
|
||||
userName: {
|
||||
type: 'text',
|
||||
label: '用户名'
|
||||
label: this.$t('system.userName')
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,40 +44,40 @@ export default {
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: '用户名称',
|
||||
title: this.$t('system.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: '用户手机号',
|
||||
title: this.$t('system.mobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: '课程名称',
|
||||
title: this.$t('system.lessonName'),
|
||||
prop: 'lessonName'
|
||||
},
|
||||
{
|
||||
title: '实训用时',
|
||||
title: this.$t('system.trainingUseTime'),
|
||||
prop: 'duration',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.computation(row.duration); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
title: '实训名称',
|
||||
title: this.$t('system.trainingName'),
|
||||
prop: 'trainingName'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: '操作',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: '编辑',
|
||||
name: this.$t('global.edit'),
|
||||
handleClick: this.edit,
|
||||
showControl: (row) => { return row.fake != '0'; }
|
||||
},
|
||||
{
|
||||
name: '删除',
|
||||
name: this.$t('global.delete'),
|
||||
handleClick: this.handleDelete,
|
||||
type: 'danger',
|
||||
showControl: (row) => { return row.fake != '0'; }
|
||||
@ -86,7 +86,7 @@ export default {
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: '新增', handler: this.createTraining }
|
||||
{ text: this.$t('global.add'), handler: this.createTraining }
|
||||
]
|
||||
},
|
||||
currentModel: {}
|
||||
@ -107,9 +107,9 @@ export default {
|
||||
const f = parseInt(fieldValue / 60);
|
||||
const s = fieldValue % 60;
|
||||
if (f > 0) {
|
||||
return `${f}分${s}秒`;
|
||||
return `${f} ${this.$t('system.minute')} ${s} ${this.$t('system.second')}`;
|
||||
} else {
|
||||
return `${s}秒`;
|
||||
return `${s} ${this.$t('system.second')}`;
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -121,17 +121,17 @@ export default {
|
||||
|
||||
// 删除
|
||||
handleDelete(index, row) {
|
||||
this.$confirm('此操作将删除此考试结果, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
this.$confirm(this.$t('system.delExamResultIsContinue'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
deleteUserTraining(row.id).then(response => {
|
||||
this.$message.success('删除成功');
|
||||
this.$message.success(this.$t('system.deleteSuccess'));
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.reloadTable();
|
||||
this.$messageBox('删除失败');
|
||||
this.$messageBox(this.$t('error.deleteFailed'));
|
||||
});
|
||||
});
|
||||
},
|
||||
|
@ -11,8 +11,8 @@
|
||||
</el-card>
|
||||
<div class="draft">
|
||||
<el-button-group>
|
||||
<el-button type="primary" @click="create">{{$t('global.create')}}</el-button>
|
||||
<el-button type="primary" @click="turnback">{{$t('global.return')}}</el-button>
|
||||
<el-button type="primary" @click="create">{{ $t('global.create') }}</el-button>
|
||||
<el-button type="primary" @click="turnback">{{ $t('global.return') }}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
</div>
|
||||
@ -63,7 +63,7 @@ export default {
|
||||
},
|
||||
|
||||
rules() {
|
||||
const _this = this;
|
||||
const _this = this;
|
||||
const baseRules = {
|
||||
userId: [
|
||||
{ required: true, message: this.$t('rules.userNameInput'), trigger: 'blur' }
|
||||
|
@ -1,244 +1,241 @@
|
||||
<template>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList">
|
||||
</QueryListPage>
|
||||
<author-detail ref="authorDetail"></author-detail>
|
||||
</div>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
<author-detail ref="authorDetail" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getLessonPermissonPageList, setLessonPermisson, getDistribute } from '@/api/management/author';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import authorDetail from './detail';
|
||||
import { getLessonPermissonPageList, setLessonPermisson, getDistribute } from '@/api/management/author';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import authorDetail from './detail';
|
||||
|
||||
export default {
|
||||
name: 'author',
|
||||
components: {
|
||||
authorDetail
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
param: '',
|
||||
WhetherTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'userMobile': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.userMobile')
|
||||
},
|
||||
'userName': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.userName')
|
||||
},
|
||||
'type': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userMobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'type',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.type, this.PermissionTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return '' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether') },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList') },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.totalPermissions'),
|
||||
prop: 'amount'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.residualPermissionNumber'),
|
||||
prop: 'remains'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
export default {
|
||||
name: 'Author',
|
||||
components: {
|
||||
authorDetail
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
param: '',
|
||||
WhetherTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'userMobile': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.userMobile')
|
||||
},
|
||||
'userName': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.userName')
|
||||
},
|
||||
'type': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userMobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'type',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.type, this.PermissionTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether'); },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList'); },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.totalPermissions'),
|
||||
prop: 'amount'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.residualPermissionNumber'),
|
||||
prop: 'remains'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseAuthorityStatus'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']) },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('orderAuthor.setupFailure'),
|
||||
type: 'warning',
|
||||
handleClick: this.handleSetFailure,
|
||||
showControl: (row) => {
|
||||
return row.status === '1';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.setupEffective'),
|
||||
type: 'primary',
|
||||
handleClick: this.handleSetFailure,
|
||||
showControl: (row) => {
|
||||
return row.status === '0';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.renew'),
|
||||
type: "warning",
|
||||
handleClick: this.handleRenewAdd,
|
||||
showControl: (row) => {
|
||||
return row.origin === '01' && (row.forever || (row.endTime && Date.parse(new Date(row.endTime.replace(/\-/g, "\/"))) > Date.parse(new Date())))
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.source'),
|
||||
type: '',
|
||||
handleClick: this.handleSource,
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseAuthorityStatus'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']); },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('orderAuthor.setupFailure'),
|
||||
type: 'warning',
|
||||
handleClick: this.handleSetFailure,
|
||||
showControl: (row) => {
|
||||
return row.status === '1';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.setupEffective'),
|
||||
type: 'primary',
|
||||
handleClick: this.handleSetFailure,
|
||||
showControl: (row) => {
|
||||
return row.status === '0';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.renew'),
|
||||
type: 'warning',
|
||||
handleClick: this.handleRenewAdd,
|
||||
showControl: (row) => {
|
||||
return row.origin === '01' && (row.forever || (row.endTime && Date.parse(new Date(row.endTime.replace(/\-/g, '\/'))) > Date.parse(new Date())));
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.source'),
|
||||
type: '',
|
||||
handleClick: this.handleSource
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.type.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
},
|
||||
formatterDate(row, porpInfo) {
|
||||
if (row.hasOwnProperty(porpInfo.property)) {
|
||||
}
|
||||
return row[porpInfo.property];
|
||||
},
|
||||
queryFunction(params) {
|
||||
return getLessonPermissonPageList(params);
|
||||
},
|
||||
handleSetFailure(index, row) {
|
||||
this.$confirm(this.$t('tip.updatePrivilegeTip'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
setLessonPermisson({ id: row.id, status: row.status == 1 ? '0' : '1' }).then(res => {
|
||||
this.$message.success(this.$t('tip.setupSuccessfully'));
|
||||
this.reloadTable();
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('tip.setupFailed'));
|
||||
})
|
||||
}).catch(() => { })
|
||||
},
|
||||
handleRenewAdd(index, row) {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.authorDraft}/renew/${row.id}` });
|
||||
},
|
||||
handlePermissionAdd() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.authorDraft}/add/0` });
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload()
|
||||
}
|
||||
},
|
||||
async handleSource(index, row) {
|
||||
try {
|
||||
let res = await getDistribute(row.distributeId);
|
||||
this.$refs.authorDetail.show(res.data);
|
||||
} catch (error) {
|
||||
this.$messageBox(this.$t('tip.requestFailed'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.type.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
},
|
||||
formatterDate(row, porpInfo) {
|
||||
return row[porpInfo.property];
|
||||
},
|
||||
queryFunction(params) {
|
||||
return getLessonPermissonPageList(params);
|
||||
},
|
||||
handleSetFailure(index, row) {
|
||||
this.$confirm(this.$t('tip.updatePrivilegeTip'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
setLessonPermisson({ id: row.id, status: row.status == 1 ? '0' : '1' }).then(res => {
|
||||
this.$message.success(this.$t('tip.setupSuccessfully'));
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.setupFailed'));
|
||||
});
|
||||
}).catch(() => { });
|
||||
},
|
||||
handleRenewAdd(index, row) {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.authorDraft}/renew/${row.id}` });
|
||||
},
|
||||
handlePermissionAdd() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.authorDraft}/add/0` });
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
},
|
||||
async handleSource(index, row) {
|
||||
try {
|
||||
const res = await getDistribute(row.distributeId);
|
||||
this.$refs.authorDetail.show(res.data);
|
||||
} catch (error) {
|
||||
this.$messageBox(this.$t('tip.requestFailed'));
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -1,221 +1,220 @@
|
||||
<template>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList">
|
||||
</QueryListPage>
|
||||
</div>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getCommodityList, delCommodity, setCommodityStatus } from '@/api/management/goods';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import { listPublishMap } from '@/api/jmap/map';
|
||||
import { getCommodityList, delCommodity, setCommodityStatus } from '@/api/management/goods';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import { listPublishMap } from '@/api/jmap/map';
|
||||
|
||||
export default {
|
||||
name: 'Dictionary',
|
||||
data() {
|
||||
return {
|
||||
productTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
name: {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.name')
|
||||
},
|
||||
productType: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.productType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
mapId: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.map'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
status: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.state'),
|
||||
config: {
|
||||
data: this.$ConstSelect.Status
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: getCommodityList,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.commodityName'),
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productType'),
|
||||
prop: 'productType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.productType, this.productTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return 'success' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productName'),
|
||||
prop: 'prdName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.price'),
|
||||
prop: 'price'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.state'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']) },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.describtion'),
|
||||
prop: 'remarks'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.creationTime'),
|
||||
prop: 'createTime'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '270',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('global.edit'),
|
||||
type: 'primary',
|
||||
handleClick: this.handleEdit
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.setupFailure'),
|
||||
handleClick: this.handleEfficacy,
|
||||
type: 'warning',
|
||||
showControl: (row) => {
|
||||
return row.status == '1';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.setupEffective'),
|
||||
type: 'primary',
|
||||
handleClick: this.handleEfficacy,
|
||||
showControl: (row) => {
|
||||
return row.status == '0';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('global.delete'),
|
||||
type: 'danger',
|
||||
handleClick: this.handleDelete,
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: this.$t('global.add'), handler: this.handleAdd },
|
||||
]
|
||||
},
|
||||
export default {
|
||||
name: 'Dictionary',
|
||||
data() {
|
||||
return {
|
||||
productTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
name: {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.name')
|
||||
},
|
||||
productType: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.productType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
mapId: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.map'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
status: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.state'),
|
||||
config: {
|
||||
data: this.$ConstSelect.Status
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: getCommodityList,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.commodityName'),
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productType'),
|
||||
prop: 'productType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.productType, this.productTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productName'),
|
||||
prop: 'prdName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.price'),
|
||||
prop: 'price'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.state'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']); },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.describtion'),
|
||||
prop: 'remarks'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.creationTime'),
|
||||
prop: 'createTime'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: this.$i18n.locale == 'en' ? '300': '250',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('global.edit'),
|
||||
type: 'primary',
|
||||
handleClick: this.handleEdit
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.setupFailure'),
|
||||
handleClick: this.handleEfficacy,
|
||||
type: 'warning',
|
||||
showControl: (row) => {
|
||||
return row.status == '1';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.setupEffective'),
|
||||
type: 'primary',
|
||||
handleClick: this.handleEfficacy,
|
||||
showControl: (row) => {
|
||||
return row.status == '0';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: this.$t('global.delete'),
|
||||
type: 'danger',
|
||||
handleClick: this.handleDelete
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: this.$t('global.add'), handler: this.handleAdd }
|
||||
]
|
||||
},
|
||||
|
||||
currentModel: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
async loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
// 产品类型
|
||||
this.$Dictionary.productType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.productType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.productTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
try {
|
||||
// 获取地图
|
||||
let res = await listPublishMap();
|
||||
res.data.forEach(elem => {
|
||||
this.queryForm.queryObject.mapId.config.data.push({ value: elem.id, label: elem.name });
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error, '获取发布地图');
|
||||
}
|
||||
},
|
||||
handleEdit(index, row) {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.commodityDraft}/edit/${row.id}` });
|
||||
},
|
||||
currentModel: {}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
async loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
// 产品类型
|
||||
this.$Dictionary.productType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.productType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.productTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
try {
|
||||
// 获取地图
|
||||
const res = await listPublishMap();
|
||||
res.data.forEach(elem => {
|
||||
this.queryForm.queryObject.mapId.config.data.push({ value: elem.id, label: elem.name });
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error, '获取发布地图');
|
||||
}
|
||||
},
|
||||
handleEdit(index, row) {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.commodityDraft}/edit/${row.id}` });
|
||||
},
|
||||
|
||||
handleAdd() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.commodityDraft}/add/0` });
|
||||
},
|
||||
// 设置失效
|
||||
handleEfficacy(index, row) {
|
||||
this.$confirm(this.$t('tip.updateProductTip'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
setCommodityStatus(row.id).then(res => {
|
||||
this.$message.success(this.$t('tip.operationSuccessfully'));
|
||||
this.reloadTable()
|
||||
}).catch(err => {
|
||||
this.$messageBox(this.$t('tip.operationFailed'));
|
||||
this.reloadTable()
|
||||
})
|
||||
}).catch(() => { })
|
||||
},
|
||||
handleDelete(index, row) {
|
||||
this.$confirm(this.$t('tip.deleteProductTip'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
delCommodity(row.id).then(response => {
|
||||
this.$message.success(this.$t('tip.successfullyDelete'));
|
||||
this.reloadTable()
|
||||
}).catch(error => {
|
||||
this.reloadTable();
|
||||
this.$messageBox(this.$t('tip.failDelete'))
|
||||
})
|
||||
}).catch(() => { })
|
||||
},
|
||||
handleAdd() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.commodityDraft}/add/0` });
|
||||
},
|
||||
// 设置失效
|
||||
handleEfficacy(index, row) {
|
||||
this.$confirm(this.$t('tip.updateProductTip'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
setCommodityStatus(row.id).then(res => {
|
||||
this.$message.success(this.$t('tip.operationSuccessfully'));
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.operationFailed'));
|
||||
this.reloadTable();
|
||||
});
|
||||
}).catch(() => { });
|
||||
},
|
||||
handleDelete(index, row) {
|
||||
this.$confirm(this.$t('tip.deleteProductTip'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
delCommodity(row.id).then(response => {
|
||||
this.$message.success(this.$t('tip.successfullyDelete'));
|
||||
this.reloadTable();
|
||||
}).catch(() => {
|
||||
this.reloadTable();
|
||||
this.$messageBox(this.$t('tip.failDelete'));
|
||||
});
|
||||
}).catch(() => { });
|
||||
},
|
||||
|
||||
reloadTable() {
|
||||
this.queryList.reload()
|
||||
}
|
||||
}
|
||||
}
|
||||
reloadTable() {
|
||||
this.queryList.reload();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -1,189 +1,195 @@
|
||||
<template>
|
||||
<el-dialog :title="this.$t('orderAuthor.trainingList')" :visible.sync="show" top="20px" width="90%" :before-doClose="doClose"
|
||||
:close-on-click-modal="false">
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList">
|
||||
</QueryListPage>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
:title="this.$t('orderAuthor.trainingList')"
|
||||
:visible.sync="show"
|
||||
top="20px"
|
||||
width="90%"
|
||||
:before-do-close="doClose"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { putMapProductOnLine, putMapProductOffLine } from '@/api/jmap/mapdraft';
|
||||
import { getCommodityList, delCommodity, setCommodityStatus } from '@/api/management/goods';
|
||||
import { getProductList } from '@/api/management/mapprd';
|
||||
import { pageQueryTraining } from '@/api/jmap/training';
|
||||
import { getSkinCodeList } from '@/api/management/mapskin'
|
||||
import localStore from 'storejs';
|
||||
import { listPublishMap } from '@/api/jmap/map';
|
||||
import { getCommodityList } from '@/api/management/goods';
|
||||
import { listPublishMap } from '@/api/jmap/map';
|
||||
|
||||
export default {
|
||||
name: 'addGoods',
|
||||
props: {
|
||||
trainings: {
|
||||
type: Array,
|
||||
},
|
||||
detail: {
|
||||
type: Object,
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
productTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
name: {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.name')
|
||||
},
|
||||
productType: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.productType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
mapId: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.map'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
status: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.state'),
|
||||
config: {
|
||||
data: this.$ConstSelect.Status
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: getCommodityList,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.commodityName'),
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productType'),
|
||||
prop: 'productType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.productType, this.productTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return 'success' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productName'),
|
||||
prop: 'prdName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.price'),
|
||||
prop: 'price'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.state'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']) },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.describtion'),
|
||||
prop: 'remarks'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.creationTime'),
|
||||
prop: 'createTime'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: '选择',
|
||||
type: 'primary',
|
||||
handleClick: this.handleAdd
|
||||
},
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
]
|
||||
},
|
||||
export default {
|
||||
name: 'AddGoods',
|
||||
props: {
|
||||
trainings: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
detail: {
|
||||
type: Object,
|
||||
default() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
productTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '80px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
name: {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.name')
|
||||
},
|
||||
productType: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.productType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
mapId: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.map'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
status: {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.state'),
|
||||
config: {
|
||||
data: this.$ConstSelect.Status
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: getCommodityList,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.commodityName'),
|
||||
prop: 'name'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productType'),
|
||||
prop: 'productType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.productType, this.productTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.productName'),
|
||||
prop: 'prdName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.price'),
|
||||
prop: 'price'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.state'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']); },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.describtion'),
|
||||
prop: 'remarks'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.creationTime'),
|
||||
prop: 'createTime'
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '250',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('orderAuthor.select'),
|
||||
type: 'primary',
|
||||
handleClick: this.handleAdd
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
]
|
||||
},
|
||||
|
||||
currentModel: {}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
doShow() {
|
||||
this.show = true;
|
||||
this.reloadTable();
|
||||
},
|
||||
doClose() {
|
||||
this.show = false;
|
||||
},
|
||||
async loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
// 产品类型
|
||||
this.$Dictionary.productType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.productType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.productTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
try {
|
||||
// 获取地图
|
||||
let res = await listPublishMap();
|
||||
res.data.forEach(elem => {
|
||||
this.queryForm.queryObject.mapId.config.data.push({ value: elem.id, label: elem.name });
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error, '获取发布地图');
|
||||
}
|
||||
},
|
||||
currentModel: {}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
doShow() {
|
||||
this.show = true;
|
||||
this.reloadTable();
|
||||
},
|
||||
doClose() {
|
||||
this.show = false;
|
||||
},
|
||||
async loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
// 产品类型
|
||||
this.$Dictionary.productType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.productType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.productTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
try {
|
||||
// 获取地图
|
||||
const res = await listPublishMap();
|
||||
res.data.forEach(elem => {
|
||||
this.queryForm.queryObject.mapId.config.data.push({ value: elem.id, label: elem.name });
|
||||
});
|
||||
} catch (error) {
|
||||
console.error(error, '获取发布地图');
|
||||
}
|
||||
},
|
||||
|
||||
handleAdd(index, row) {
|
||||
this.$emit('selectGoods', row);
|
||||
this.doClose();
|
||||
},
|
||||
handleAdd(index, row) {
|
||||
this.$emit('selectGoods', row);
|
||||
this.doClose();
|
||||
},
|
||||
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -1,54 +1,62 @@
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="show" width="360px" :before-close="doClose" :zIndex="2000" :modal="false"
|
||||
:close-on-click-modal="false" v-dialogDrag>
|
||||
<div style="text-align:center">
|
||||
<el-radio-group v-model="formModel.canDistribute">
|
||||
<el-radio :label="true">{{$t('orderAuthor.publicAuthority')}}</el-radio>
|
||||
<el-radio :label="false">{{$t('orderAuthor.privateAuthority')}}</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleClose">{{$t('global.cancel')}}</el-button>
|
||||
<el-button type="primary" @click="handleSure">{{$t('global.confirm')}}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
v-dialogDrag
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
width="360px"
|
||||
:before-close="doClose"
|
||||
:z-index="2000"
|
||||
:modal="false"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<div style="text-align:center">
|
||||
<el-radio-group v-model="formModel.canDistribute">
|
||||
<el-radio :label="true">{{ $t('orderAuthor.publicAuthority') }}</el-radio>
|
||||
<el-radio :label="false">{{ $t('orderAuthor.privateAuthority') }}</el-radio>
|
||||
</el-radio-group>
|
||||
</div>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleClose">{{ $t('global.cancel') }}</el-button>
|
||||
<el-button type="primary" @click="handleSure">{{ $t('global.confirm') }}</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'CanTransfer',
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
formModel: {
|
||||
canDistribute: true,
|
||||
},
|
||||
data: {},
|
||||
export default {
|
||||
name: 'CanTransfer',
|
||||
data() {
|
||||
return {
|
||||
dialogShow: false,
|
||||
formModel: {
|
||||
canDistribute: true
|
||||
},
|
||||
data: {}
|
||||
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow;
|
||||
},
|
||||
title() { return this.$t('orderAuthor.optionPrivilegeTransfer'); }
|
||||
},
|
||||
methods: {
|
||||
doShow(data) {
|
||||
this.dialogShow = true;
|
||||
this.formModel.canDistribute = true;
|
||||
this.data = data;
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
},
|
||||
handleSure() {
|
||||
this.doClose();
|
||||
Object.assign(this.data, this.formModel);
|
||||
this.$emit('distribute', this.data);
|
||||
},
|
||||
handleClose() {
|
||||
this.doClose();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
show() {
|
||||
return this.dialogShow;
|
||||
},
|
||||
title() { return this.$t('orderAuthor.optionPrivilegeTransfer'); }
|
||||
},
|
||||
methods: {
|
||||
doShow(data) {
|
||||
this.dialogShow = true;
|
||||
this.formModel.canDistribute = true;
|
||||
this.data = data;
|
||||
},
|
||||
doClose() {
|
||||
this.dialogShow = false;
|
||||
},
|
||||
handleSure() {
|
||||
this.doClose();
|
||||
Object.assign(this.data, this.formModel);
|
||||
this.$emit('distribute', this.data);
|
||||
},
|
||||
handleClose() {
|
||||
this.doClose();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -1,511 +1,508 @@
|
||||
<template>
|
||||
<div>
|
||||
<!-- <turnback-bar :title="turnbackBarTitle"></turnback-bar> -->
|
||||
<div class="card-box">
|
||||
<el-steps class="steps" :active="display">
|
||||
<el-step :title="title" icon="el-icon-edit-outline"></el-step>
|
||||
<el-step title="" icon="el-icon-upload"></el-step>
|
||||
</el-steps>
|
||||
<el-card class="forms">
|
||||
<el-scrollbar wrapClass="scrollbar-wrapper" :style="{height:height -70 + 'px'}"
|
||||
style="padding-top: 40px">
|
||||
<data-form class="card-form" ref="dataform" :form="form" :formModel="formModel" :rules="rules"></data-form>
|
||||
</el-scrollbar>
|
||||
</el-card>
|
||||
<div class="draft">
|
||||
<el-button-group>
|
||||
<el-button type="primary" @click="create" v-if="isAdd" v-loading="loading">{{$t('global.create')}}</el-button>
|
||||
<el-button type="primary" @click="update" v-if="isEdit" v-loading="loading">{{$t('global.update')}}</el-button>
|
||||
<el-button type="primary" @click="create" v-if="isReNew" v-loading="loading">{{$t('orderAuthor.renew')}}</el-button>
|
||||
<el-button type="primary" @click="turnback">{{$t('global.return')}}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
</div>
|
||||
<add-goods ref="addGoods" @selectGoods="selectGoods"></add-goods>
|
||||
<div>
|
||||
<!-- <turnback-bar :title="turnbackBarTitle"></turnback-bar> -->
|
||||
<div class="card-box">
|
||||
<el-steps class="steps" :active="display">
|
||||
<el-step :title="title" icon="el-icon-edit-outline" />
|
||||
<el-step title="" icon="el-icon-upload" />
|
||||
</el-steps>
|
||||
<el-card class="forms">
|
||||
<el-scrollbar
|
||||
wrap-class="scrollbar-wrapper"
|
||||
:style="{height:height -70 + 'px'}"
|
||||
style="padding-top: 40px"
|
||||
>
|
||||
<data-form ref="dataform" :form="form" :form-model="formModel" :rules="rules" />
|
||||
</el-scrollbar>
|
||||
</el-card>
|
||||
<div class="draft">
|
||||
<el-button-group>
|
||||
<el-button v-if="isAdd" v-loading="loading" type="primary" @click="create">{{ $t('global.create') }}</el-button>
|
||||
<el-button v-if="isEdit" v-loading="loading" type="primary" @click="update">{{ $t('global.update') }}</el-button>
|
||||
<el-button v-if="isReNew" v-loading="loading" type="primary" @click="create">{{ $t('orderAuthor.renew') }}</el-button>
|
||||
<el-button type="primary" @click="turnback">{{ $t('global.return') }}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
</div>
|
||||
<add-goods ref="addGoods" @selectGoods="selectGoods" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getOrderDetail, createOrder, updateOrder, getOrderCharge } from '@/api/management/order';
|
||||
import { addOrganization, getOrganizationList } from '@/api/management/organization';
|
||||
import { getGoodsList } from '@/api/management/goods';
|
||||
import { getSellerList } from '@/api/management/user';
|
||||
import { validateCharCode } from '@/utils/validate';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import WindowResizeHandler from '@/mixin/WindowResizeHandler';
|
||||
import addGoods from './addGoods';
|
||||
import { createOrder, updateOrder, getOrderCharge } from '@/api/management/order';
|
||||
import { addOrganization, getOrganizationList } from '@/api/management/organization';
|
||||
import { getGoodsList } from '@/api/management/goods';
|
||||
import { getSellerList } from '@/api/management/user';
|
||||
import WindowResizeHandler from '@/mixin/WindowResizeHandler';
|
||||
import addGoods from './addGoods';
|
||||
|
||||
export default {
|
||||
name: 'DictionaryDetailEdit',
|
||||
mixins: [
|
||||
WindowResizeHandler
|
||||
],
|
||||
components: {
|
||||
addGoods
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
type: '',
|
||||
height: '',
|
||||
display: 1,
|
||||
loading: false,
|
||||
foreverInitData: false,
|
||||
SellerList: [],
|
||||
OrganizationList: [],
|
||||
BizTypeList: [],
|
||||
goodsList: [],
|
||||
OrderTypeList: [],
|
||||
PayTypeList: [],
|
||||
PayStatusTypeList: [],
|
||||
WhetherTypeList: [],
|
||||
OrgzList: [],
|
||||
PermissionTypeList: [],
|
||||
formModel: {
|
||||
organizationId: '',
|
||||
goodsId: '',
|
||||
goodsName: '',
|
||||
orderType: '02',
|
||||
contractNo: '',
|
||||
forever: false,
|
||||
totalPrice: 0,
|
||||
price: 0,
|
||||
amount: 0,
|
||||
monthAmount: 0,
|
||||
bizType: '01',
|
||||
payWays: '01',
|
||||
payStatus: '02',
|
||||
startTime: '',
|
||||
sellerId: '',
|
||||
},
|
||||
DatePicker: {
|
||||
shortcuts: [{
|
||||
text: this.$t('orderAuthor.today'),
|
||||
onClick(picker) {
|
||||
picker.$emit('pick', new Date());
|
||||
}
|
||||
}, {
|
||||
text: this.$t('orderAuthor.yesterday'),
|
||||
onClick(picker) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() - 3600 * 1000 * 24);
|
||||
picker.$emit('pick', date);
|
||||
}
|
||||
}, {
|
||||
text: this.$t('orderAuthor.aWeekAgo'),
|
||||
onClick(picker) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
|
||||
picker.$emit('pick', date);
|
||||
}
|
||||
}]
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// turnbackBarTitle() {
|
||||
// return '';
|
||||
// },
|
||||
isAdd() {
|
||||
return this.type === 'ADD';
|
||||
},
|
||||
isEdit() {
|
||||
return (this.type === 'EDIT') && !isNaN(Number(this.$route.params.orderId));;
|
||||
},
|
||||
isReNew() {
|
||||
return (this.type === 'RENEW') && !isNaN(Number(this.$route.params.orderId));
|
||||
},
|
||||
title() {
|
||||
return this.isAdd ? this.$t('orderAuthor.addOrder') : (this.isEdit ? this.$t('orderAuthor.updateOrder') : this.isReNew ? this.$t('orderAuthor.renewOrder') : this.$t('orderAuthor.unknownRouter'));
|
||||
},
|
||||
monthsTitle() {
|
||||
return this.isReNew ? this.$t('orderAuthor.increasePurchaseTime') : this.$t('orderAuthor.choosePurchaseTime');
|
||||
},
|
||||
totalTitle() {
|
||||
return this.isReNew ? this.$t('orderAuthor.increasePermissionNumber') : this.$t('orderAuthor.choosePermissionNumber');
|
||||
},
|
||||
isShowStartDate() {
|
||||
return !this.formModel.forever && (this.formModel.bizType !== '02'); //非永久的非续费类型显示开始时间
|
||||
},
|
||||
isShowMonths() {
|
||||
return !this.formModel.forever // 非永久类型显示月份
|
||||
},
|
||||
isShowContractNo() {
|
||||
return this.formModel.orderType === '02'; //是合同类型显示
|
||||
},
|
||||
isShowPrice() {
|
||||
return this.formModel.orderType === '02'; //是合同类型显示
|
||||
},
|
||||
isShowPayType() {
|
||||
return this.formModel.orderType === '02'; //是合同类型显示
|
||||
},
|
||||
isShowPayStatus() {
|
||||
return this.formModel.orderType === '02'; //是合同类型显示
|
||||
},
|
||||
isShowSeller() {
|
||||
return this.formModel.orderType !== '04'; //不是内部分配显示
|
||||
},
|
||||
isDisabled() {
|
||||
return this.isEdit || this.isReNew
|
||||
},
|
||||
foreverIsDisabled() {
|
||||
return this.foreverInitData
|
||||
},
|
||||
payTypeIsDisabled() {
|
||||
return this.isEdit
|
||||
},
|
||||
payStatusDisabled() {
|
||||
return this.isEdit
|
||||
},
|
||||
export default {
|
||||
name: 'DictionaryDetailEdit',
|
||||
components: {
|
||||
addGoods
|
||||
},
|
||||
mixins: [
|
||||
WindowResizeHandler
|
||||
],
|
||||
data() {
|
||||
return {
|
||||
type: '',
|
||||
height: '',
|
||||
display: 1,
|
||||
loading: false,
|
||||
foreverInitData: false,
|
||||
SellerList: [],
|
||||
OrganizationList: [],
|
||||
BizTypeList: [],
|
||||
goodsList: [],
|
||||
OrderTypeList: [],
|
||||
PayTypeList: [],
|
||||
PayStatusTypeList: [],
|
||||
WhetherTypeList: [],
|
||||
OrgzList: [],
|
||||
PermissionTypeList: [],
|
||||
formModel: {
|
||||
organizationId: '',
|
||||
goodsId: '',
|
||||
goodsName: '',
|
||||
orderType: '02',
|
||||
contractNo: '',
|
||||
forever: false,
|
||||
totalPrice: 0,
|
||||
price: 0,
|
||||
amount: 0,
|
||||
monthAmount: 0,
|
||||
bizType: '01',
|
||||
payWays: '01',
|
||||
payStatus: '02',
|
||||
startTime: '',
|
||||
sellerId: ''
|
||||
},
|
||||
DatePicker: {
|
||||
shortcuts: [{
|
||||
text: this.$t('orderAuthor.today'),
|
||||
onClick(picker) {
|
||||
picker.$emit('pick', new Date());
|
||||
}
|
||||
}, {
|
||||
text: this.$t('orderAuthor.yesterday'),
|
||||
onClick(picker) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() - 3600 * 1000 * 24);
|
||||
picker.$emit('pick', date);
|
||||
}
|
||||
}, {
|
||||
text: this.$t('orderAuthor.aWeekAgo'),
|
||||
onClick(picker) {
|
||||
const date = new Date();
|
||||
date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
|
||||
picker.$emit('pick', date);
|
||||
}
|
||||
}]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
// turnbackBarTitle() {
|
||||
// return '';
|
||||
// },
|
||||
isAdd() {
|
||||
return this.type === 'ADD';
|
||||
},
|
||||
isEdit() {
|
||||
return (this.type === 'EDIT') && !isNaN(Number(this.$route.params.orderId));
|
||||
},
|
||||
isReNew() {
|
||||
return (this.type === 'RENEW') && !isNaN(Number(this.$route.params.orderId));
|
||||
},
|
||||
title() {
|
||||
return this.isAdd ? this.$t('orderAuthor.addOrder') : (this.isEdit ? this.$t('orderAuthor.updateOrder') : this.isReNew ? this.$t('orderAuthor.renewOrder') : this.$t('orderAuthor.unknownRouter'));
|
||||
},
|
||||
monthsTitle() {
|
||||
return this.isReNew ? this.$t('orderAuthor.increasePurchaseTime') : this.$t('orderAuthor.choosePurchaseTime');
|
||||
},
|
||||
totalTitle() {
|
||||
return this.isReNew ? this.$t('orderAuthor.increasePermissionNumber') : this.$t('orderAuthor.choosePermissionNumber');
|
||||
},
|
||||
isShowStartDate() {
|
||||
return !this.formModel.forever && (this.formModel.bizType !== '02'); // 非永久的非续费类型显示开始时间
|
||||
},
|
||||
isShowMonths() {
|
||||
return !this.formModel.forever; // 非永久类型显示月份
|
||||
},
|
||||
isShowContractNo() {
|
||||
return this.formModel.orderType === '02'; // 是合同类型显示
|
||||
},
|
||||
isShowPrice() {
|
||||
return this.formModel.orderType === '02'; // 是合同类型显示
|
||||
},
|
||||
isShowPayType() {
|
||||
return this.formModel.orderType === '02'; // 是合同类型显示
|
||||
},
|
||||
isShowPayStatus() {
|
||||
return this.formModel.orderType === '02'; // 是合同类型显示
|
||||
},
|
||||
isShowSeller() {
|
||||
return this.formModel.orderType !== '04'; // 不是内部分配显示
|
||||
},
|
||||
isDisabled() {
|
||||
return this.isEdit || this.isReNew;
|
||||
},
|
||||
foreverIsDisabled() {
|
||||
return this.foreverInitData;
|
||||
},
|
||||
payTypeIsDisabled() {
|
||||
return this.isEdit;
|
||||
},
|
||||
payStatusDisabled() {
|
||||
return this.isEdit;
|
||||
},
|
||||
|
||||
form() {
|
||||
let form = {
|
||||
labelWidth: 'auto',
|
||||
items: [
|
||||
{ prop: 'organizationId', label: this.$t('orderAuthor.organizationOrEnterprise'), type: 'select', required: false, disabled: this.isDisabled, options: this.OrganizationList, allowCreate: true, onChange: this.onChange },
|
||||
// { prop: 'goodsId', label: '商品名称', type: 'select', required: false, disabled: this.isDisabled, options: this.goodsList, change: true, onChange: this.selectCommodity },
|
||||
{ prop: 'goodsName', label: this.$t('orderAuthor.commodityName'), type: 'text', required: false, rightWidth: true, disabled: true, buttontip: this.$t('orderAuthor.chooseGoods'), buttonClick: this.buttonClick },
|
||||
{ prop: 'price', label: this.$t('orderAuthor.itemPricing'), type: 'number', required: false, disabled: true, min: 0, message: this.$t('global.yuan') },
|
||||
{ prop: 'orderType', label: this.$t('orderAuthor.orderType'), type: 'select', required: false, disabled: this.isDisabled, options: this.OrderTypeList },
|
||||
{ prop: 'sellerId', label: this.$t('orderAuthor.salesman'), type: 'select', required: false, show: this.isShowSeller, disabled: this.isDisabled, options: this.SellerList },
|
||||
{ prop: 'contractNo', label: this.$t('orderAuthor.contractNumber'), type: 'text',rightWidth: true, required: false, show: this.isShowContractNo },
|
||||
{ prop: 'amount', label: this.totalTitle, type: 'number', required: false, show: true, min: 0 },
|
||||
{ prop: 'forever', label: this.$t('orderAuthor.permanenceOrNot'), type: 'radio', required: false, options: this.$ConstSelect.Whether, disabled: this.foreverIsDisabled },
|
||||
{ prop: 'startTime', label: this.$t('orderAuthor.startDate'), type: 'date', required: false, show: this.isShowStartDate, viewFormat: "yyyy-MM-dd", valueFormat: "yyyy-MM-dd", picker: this.DatePicker },
|
||||
{ prop: 'monthAmount', label: this.monthsTitle, type: 'number', required: false, show: this.isShowMonths, min: 0, message: this.$t('global.month') },
|
||||
{ prop: 'totalPrice', label: this.$t('orderAuthor.totalPrice'), type: 'number', required: false, show: this.isShowPrice, min: 0, message: this.$t('global.yuan') },
|
||||
{ prop: 'bizType', label: this.$t('orderAuthor.businessType'), type: 'select', required: false, disabled: true, options: this.BizTypeList },
|
||||
{ prop: 'payWays', label: this.$t('orderAuthor.paymentMethod'), type: 'select', required: false, disabled: this.payTypeIsDisabled, show: this.isShowPayType, options: this.PayTypeList },
|
||||
{ prop: 'payStatus', label: this.$t('orderAuthor.paymentStatus'), type: 'select', required: false, disabled: this.payStatusDisabled, show: this.isShowPayStatus, options: this.PayStatusTypeList },
|
||||
]
|
||||
};
|
||||
return form
|
||||
},
|
||||
form() {
|
||||
const form = {
|
||||
labelWidth: this.$i18n.locale == 'en' ? '200px': '145px',
|
||||
items: [
|
||||
{ prop: 'organizationId', label: this.$t('orderAuthor.organizationOrEnterprise'), type: 'select', required: false, disabled: this.isDisabled, options: this.OrganizationList, allowCreate: true, onChange: this.onChange },
|
||||
{ prop: 'goodsName', label: this.$t('orderAuthor.commodityName'), type: 'text', required: false, disabled: true, rightWidth: true, buttontip: '选择商品', buttonClick: this.buttonClick },
|
||||
{ prop: 'price', label: this.$t('orderAuthor.itemPricing'), type: 'number', required: false, disabled: true, min: 0, message: '元' },
|
||||
{ prop: 'orderType', label: this.$t('orderAuthor.orderType'), type: 'select', required: false, disabled: this.isDisabled, options: this.OrderTypeList },
|
||||
{ prop: 'sellerId', label: this.$t('orderAuthor.salesman'), type: 'select', required: false, show: this.isShowSeller, disabled: this.isDisabled, options: this.SellerList },
|
||||
{ prop: 'contractNo', label: this.$t('orderAuthor.contractNumber'), type: 'text', required: false, show: this.isShowContractNo },
|
||||
{ prop: 'amount', label: this.totalTitle, type: 'number', required: false, show: true, min: 0 },
|
||||
{ prop: 'forever', label: this.$t('orderAuthor.permanenceOrNot'), type: 'radio', required: false, options: this.$ConstSelect.Whether, disabled: this.foreverIsDisabled },
|
||||
{ prop: 'startTime', label: this.$t('orderAuthor.startDate'), type: 'date', required: false, show: this.isShowStartDate, viewFormat: 'yyyy-MM-dd', valueFormat: 'yyyy-MM-dd', picker: this.DatePicker },
|
||||
{ prop: 'monthAmount', label: this.monthsTitle, type: 'number', required: false, show: this.isShowMonths, min: 0, message: '月' },
|
||||
{ prop: 'totalPrice', label: this.$t('orderAuthor.totalPrice'), type: 'number', required: false, show: this.isShowPrice, min: 0, message: '元' },
|
||||
{ prop: 'bizType', label: this.$t('orderAuthor.businessType'), type: 'select', required: false, disabled: true, options: this.BizTypeList },
|
||||
{ prop: 'payWays', label: this.$t('orderAuthor.paymentMethod'), type: 'select', required: false, disabled: this.payTypeIsDisabled, show: this.isShowPayType, options: this.PayTypeList },
|
||||
{ prop: 'payStatus', label: this.$t('orderAuthor.paymentStatus'), type: 'select', required: false, disabled: this.payStatusDisabled, show: this.isShowPayStatus, options: this.PayStatusTypeList }
|
||||
]
|
||||
};
|
||||
return form;
|
||||
},
|
||||
|
||||
rules() {
|
||||
const _this = this;
|
||||
let baseRules = {
|
||||
organizationId: [
|
||||
{ required: true, message: this.$t('rules.organizationInput'), trigger: 'blur' }
|
||||
],
|
||||
// goodsId: [
|
||||
// { required: true, message: '请选择商品', trigger: 'change' }
|
||||
// ],
|
||||
goodsName: [
|
||||
{ required: true, message: this.$t('rules.productSelect'), trigger: 'change' }
|
||||
],
|
||||
price: [
|
||||
{ required: true, message: this.$t('rules.itemPricingInput'), trigger: 'blur' }
|
||||
],
|
||||
orderType: [
|
||||
{ required: true, message: this.$t('rules.orderTypeSelect'), trigger: 'change' }
|
||||
],
|
||||
contractNo: [
|
||||
{ required: true, message: this.$t('rules.contractNumberInput'), trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' }
|
||||
],
|
||||
sellerId: [
|
||||
{ required: true, message: this.$t('rules.salesmanInput'), trigger: 'change' }
|
||||
],
|
||||
forever: [
|
||||
{ required: true, message: this.$t('rules.pleaseSelect'), trigger: 'change' }
|
||||
],
|
||||
amount: [
|
||||
{ required: true, message: this.$t('rules.authorAmountInput'), trigger: 'change' },
|
||||
{
|
||||
validator(rule, value, callback) {
|
||||
if (Number.isInteger(Number(value)) && Number(value) > 0) {
|
||||
callback();
|
||||
} else {
|
||||
callback(new Error(_this.$t('rules.authorAmountInputError')));
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
}
|
||||
],
|
||||
totalPrice: [
|
||||
{ required: true, message: this.$t('rules.totalPriceInput'), trigger: 'change' },
|
||||
{
|
||||
validator(rule, value, callback) {
|
||||
if (Number(value) >= 0) {
|
||||
if (String(value).split('.')[1] && String(value).split('.')[1].length > 2) {
|
||||
callback(new Error(this.$t('rules.totalPriceInputError1')));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
} else {
|
||||
callback(new Error(_this.$t('rules.totalPriceInputError2')));
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
}
|
||||
],
|
||||
monthAmount: [
|
||||
{ required: true, message: this.$t('rules.monthAmountInput'), trigger: 'change' },
|
||||
{
|
||||
validator(rule, value, callback) {
|
||||
if (Number.isInteger(Number(value)) && Number(value) > 0) {
|
||||
callback();
|
||||
} else {
|
||||
callback(new Error(_this.$t('rules.monthAmountInputError')));
|
||||
}
|
||||
},
|
||||
trigger: 'blur',
|
||||
}
|
||||
],
|
||||
startTime: [
|
||||
{ required: true, message: this.$t('rules.startTimePick'), trigger: 'change' }
|
||||
],
|
||||
bizType: [
|
||||
{ required: true, message: this.$t('rules.bizTypeSelect'), trigger: 'change' }
|
||||
],
|
||||
payWays: [
|
||||
{ required: true && this.isShowPayType, message: this.$t('rules.payWaysSelect'), trigger: 'change' }
|
||||
],
|
||||
payStatus: [
|
||||
{ required: true && this.isShowPayStatus, message: this.$t('rules.payStatusSelect'), trigger: 'change' }
|
||||
]
|
||||
}
|
||||
rules() {
|
||||
const _this = this;
|
||||
const baseRules = {
|
||||
organizationId: [
|
||||
{ required: true, message: this.$t('rules.organizationInput'), trigger: 'blur' }
|
||||
],
|
||||
goodsName: [
|
||||
{ required: true, message: this.$t('rules.productSelect'), trigger: 'change' }
|
||||
],
|
||||
price: [
|
||||
{ required: true, message: this.$t('rules.itemPricingInput'), trigger: 'blur' }
|
||||
],
|
||||
orderType: [
|
||||
{ required: true, message: this.$t('rules.orderTypeSelect'), trigger: 'change' }
|
||||
],
|
||||
contractNo: [
|
||||
{ required: true, message: this.$t('rules.contractNumberInput'), trigger: 'blur' },
|
||||
{ min: 1, max: 25, message: this.$t('rules.strLength1To25'), trigger: 'blur' }
|
||||
],
|
||||
sellerId: [
|
||||
{ required: true, message: this.$t('rules.salesmanInput'), trigger: 'change' }
|
||||
],
|
||||
forever: [
|
||||
{ required: true, message: this.$t('rules.pleaseSelect'), trigger: 'change' }
|
||||
],
|
||||
amount: [
|
||||
{ required: true, message: this.$t('rules.authorAmountInput'), trigger: 'change' },
|
||||
{
|
||||
validator(rule, value, callback) {
|
||||
if (Number.isInteger(Number(value)) && Number(value) > 0) {
|
||||
callback();
|
||||
} else {
|
||||
callback(new Error(_this.$t('rules.authorAmountInputError')));
|
||||
}
|
||||
},
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
totalPrice: [
|
||||
{ required: true, message: this.$t('rules.totalPriceInput'), trigger: 'change' },
|
||||
{
|
||||
validator(rule, value, callback) {
|
||||
if (Number(value) >= 0) {
|
||||
if (String(value).split('.')[1] && String(value).split('.')[1].length > 2) {
|
||||
callback(new Error(this.$t('rules.totalPriceInputError1')));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
} else {
|
||||
callback(new Error(_this.$t('rules.totalPriceInputError2')));
|
||||
}
|
||||
},
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
monthAmount: [
|
||||
{ required: true, message: this.$t('rules.monthAmountInput'), trigger: 'change' },
|
||||
{
|
||||
validator(rule, value, callback) {
|
||||
if (Number.isInteger(Number(value)) && Number(value) > 0) {
|
||||
callback();
|
||||
} else {
|
||||
callback(new Error(_this.$t('rules.monthAmountInputError')));
|
||||
}
|
||||
},
|
||||
trigger: 'blur'
|
||||
}
|
||||
],
|
||||
startTime: [
|
||||
{ required: true, message: this.$t('rules.startTimePick'), trigger: 'change' }
|
||||
],
|
||||
bizType: [
|
||||
{ required: true, message: this.$t('rules.bizTypeSelect'), trigger: 'change' }
|
||||
],
|
||||
payWays: [
|
||||
{ required: true && this.isShowPayType, message: this.$t('rules.payWaysSelect'), trigger: 'change' }
|
||||
],
|
||||
payStatus: [
|
||||
{ required: true && this.isShowPayStatus, message: this.$t('rules.payStatusSelect'), trigger: 'change' }
|
||||
]
|
||||
};
|
||||
|
||||
//清空表单验证提示信息
|
||||
this.$nextTick(function () {
|
||||
this.$refs.dataform.clearValidate();
|
||||
});
|
||||
// 清空表单验证提示信息
|
||||
this.$nextTick(function () {
|
||||
this.$refs.dataform.clearValidate();
|
||||
});
|
||||
|
||||
return baseRules;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initLoadPage();
|
||||
},
|
||||
methods: {
|
||||
resizeHandler: function () {
|
||||
this.height = this._clientHeight - 170;
|
||||
},
|
||||
buttonClick() {
|
||||
this.$refs.addGoods.doShow();
|
||||
},
|
||||
selectGoods(data) {
|
||||
this.formModel.goodsId = data.id;
|
||||
this.formModel.goodsName = data.name;
|
||||
},
|
||||
initLoadPage() {
|
||||
//加载字典数据
|
||||
//加载发布课程列表
|
||||
this.loading = false;
|
||||
this.goodsList.length = 0;
|
||||
getGoodsList().then(response => {
|
||||
let data = response.data;
|
||||
if (data && data.length) {
|
||||
data.forEach(elem => {
|
||||
this.goodsList.push({ value: elem.id, label: elem.name, price: elem.price });
|
||||
})
|
||||
}
|
||||
});
|
||||
return baseRules;
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.initLoadPage();
|
||||
},
|
||||
methods: {
|
||||
resizeHandler: function () {
|
||||
this.height = this._clientHeight - 170;
|
||||
},
|
||||
buttonClick() {
|
||||
this.$refs.addGoods.doShow();
|
||||
},
|
||||
selectGoods(data) {
|
||||
this.formModel.goodsId = data.id;
|
||||
this.formModel.goodsName = data.name;
|
||||
},
|
||||
initLoadPage() {
|
||||
// 加载字典数据
|
||||
// 加载发布课程列表
|
||||
this.loading = false;
|
||||
this.goodsList.length = 0;
|
||||
getGoodsList().then(response => {
|
||||
const data = response.data;
|
||||
if (data && data.length) {
|
||||
data.forEach(elem => {
|
||||
this.goodsList.push({ value: elem.id, label: elem.name, price: elem.price });
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
//加载组织列表
|
||||
this.OrganizationList.length = 0;
|
||||
getOrganizationList().then(response => {
|
||||
let data = response.data;
|
||||
data.forEach(elem => {
|
||||
this.OrganizationList.push({ value: '' + elem.id, label: elem.name });
|
||||
});
|
||||
});
|
||||
// 加载组织列表
|
||||
this.OrganizationList.length = 0;
|
||||
getOrganizationList().then(response => {
|
||||
const data = response.data;
|
||||
data.forEach(elem => {
|
||||
this.OrganizationList.push({ value: '' + elem.id, label: elem.name });
|
||||
});
|
||||
});
|
||||
|
||||
getSellerList().then(response => {
|
||||
let data = response.data;
|
||||
data.forEach(elem => {
|
||||
this.SellerList.push({ value: '' + elem.id, label: elem.name });
|
||||
})
|
||||
})
|
||||
getSellerList().then(response => {
|
||||
const data = response.data;
|
||||
data.forEach(elem => {
|
||||
this.SellerList.push({ value: '' + elem.id, label: elem.name });
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.orderType().then(list => {
|
||||
this.$convertList(list, this.OrderTypeList, elem => {
|
||||
return elem.code !== '01' //过滤个人
|
||||
});
|
||||
});
|
||||
this.$Dictionary.orderType().then(list => {
|
||||
this.$convertList(list, this.OrderTypeList, elem => {
|
||||
return elem.code !== '01'; // 过滤个人
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.payStatus().then(list => {
|
||||
this.$convertList(list, this.PayStatusTypeList, elem => {
|
||||
return elem.code !== '03' //过滤取消状态
|
||||
});
|
||||
});
|
||||
this.$Dictionary.payStatus().then(list => {
|
||||
this.$convertList(list, this.PayStatusTypeList, elem => {
|
||||
return elem.code !== '03'; // 过滤取消状态
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.payType().then(list => {
|
||||
this.$convertList(list, this.PayTypeList, elem => {
|
||||
return true
|
||||
});
|
||||
});
|
||||
this.$Dictionary.payType().then(list => {
|
||||
this.$convertList(list, this.PayTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.bizType().then(list => {
|
||||
this.$convertList(list, this.BizTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.bizType().then(list => {
|
||||
this.$convertList(list, this.BizTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
//清空数据
|
||||
this.$refs.dataform.resetForm();
|
||||
// 清空数据
|
||||
this.$refs.dataform.resetForm();
|
||||
|
||||
//添加模式
|
||||
this.type = String(this.$route.params.mode).toUpperCase();
|
||||
if (this.type === 'ADD') {
|
||||
this.formModel.bizType = '01'; //正常购买
|
||||
} else if (this.type === 'EDIT') {
|
||||
this.$alert(this.$t('global.toBeDeveloped'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
callback: action => {
|
||||
this.turnback();
|
||||
}
|
||||
});
|
||||
} else if (this.type === 'RENEW') {
|
||||
this.type = 'RENEW';
|
||||
getOrderCharge(this.$route.params.orderId).then(response => {
|
||||
this.loadModelData(response.data, () => {
|
||||
this.formModel.bizType = '02'; //续费类型
|
||||
this.formModel.totalPrice = 0;
|
||||
this.formModel.amount = 0;
|
||||
this.formModel.monthAmount = 0;
|
||||
this.formModel.contractNo = '';
|
||||
});
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('error.loadingDataFailed'));
|
||||
});
|
||||
}
|
||||
// 添加模式
|
||||
this.type = String(this.$route.params.mode).toUpperCase();
|
||||
if (this.type === 'ADD') {
|
||||
this.formModel.bizType = '01'; // 正常购买
|
||||
} else if (this.type === 'EDIT') {
|
||||
this.$alert(this.$t('global.toBeDeveloped'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
callback: action => {
|
||||
this.turnback();
|
||||
}
|
||||
});
|
||||
} else if (this.type === 'RENEW') {
|
||||
this.type = 'RENEW';
|
||||
getOrderCharge(this.$route.params.orderId).then(response => {
|
||||
this.loadModelData(response.data, () => {
|
||||
this.formModel.bizType = '02'; // 续费类型
|
||||
this.formModel.totalPrice = 0;
|
||||
this.formModel.amount = 0;
|
||||
this.formModel.monthAmount = 0;
|
||||
this.formModel.contractNo = '';
|
||||
});
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('error.loadingDataFailed'));
|
||||
});
|
||||
}
|
||||
|
||||
//清空表单验证提示信息
|
||||
this.$nextTick(function () {
|
||||
this.$refs.dataform.clearValidate();
|
||||
});
|
||||
},
|
||||
loadModelData(data, callback) {
|
||||
//获取返回值到model
|
||||
for (let field in this.formModel) {
|
||||
if (data && data.hasOwnProperty(field)) {
|
||||
this.formModel[field] = data[field];
|
||||
if (field === 'forever') {
|
||||
this.foreverInitData = data[field]; //保存forever初始值
|
||||
}
|
||||
}
|
||||
}
|
||||
if (callback && (typeof callback === typeof function () { })) {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
onChange(input) {
|
||||
//判断输入的条目是否已存在List当中,如果存在则直接返回,不做处理
|
||||
let list = this.OrganizationList
|
||||
for (let i in list) {
|
||||
if (list[i].value === input) {
|
||||
return;
|
||||
}
|
||||
};
|
||||
// 清空表单验证提示信息
|
||||
this.$nextTick(function () {
|
||||
this.$refs.dataform.clearValidate();
|
||||
});
|
||||
},
|
||||
loadModelData(data, callback) {
|
||||
// 获取返回值到model
|
||||
for (const field in this.formModel) {
|
||||
if (data && data.hasOwnProperty(field)) {
|
||||
this.formModel[field] = data[field];
|
||||
if (field === 'forever') {
|
||||
this.foreverInitData = data[field]; // 保存forever初始值
|
||||
}
|
||||
}
|
||||
}
|
||||
if (callback && (typeof callback === typeof function () { })) {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
onChange(input) {
|
||||
// 判断输入的条目是否已存在List当中,如果存在则直接返回,不做处理
|
||||
const list = this.OrganizationList;
|
||||
for (const i in list) {
|
||||
if (list[i].value === input) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//如果需要添加的条目,不存在List当中,则需要提示是否添加条目,并且增加对应的处理
|
||||
this.$confirm(this.$t('tip.addOrganizationPrefix') + input + this.$t('tip.addOrganizationSuffix'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
addOrganization({ name: input }).then(response => {
|
||||
this.OrgzList.push(response.data);
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('error.addingFailure'));
|
||||
})
|
||||
}).catch(() => {
|
||||
this.formModel.organizationId = '';
|
||||
this.$message.info(this.$t('error.cancelled'));
|
||||
});
|
||||
},
|
||||
selectCommodity(data) {
|
||||
this.goodsList.forEach(v => {
|
||||
if (v.value == data) {
|
||||
this.formModel.price = v.price;
|
||||
}
|
||||
})
|
||||
},
|
||||
buildModel() {
|
||||
//如果新增的条目不存在字典当中,则需要在临时字典中取对应的值
|
||||
let orgzId = this.formModel.organizationId;
|
||||
if (this.OrgzList && this.OrgzList.length) {
|
||||
for (var i in this.OrgzList) {
|
||||
if (orgzId === this.OrgzList[i].name) {
|
||||
orgzId = this.OrgzList[i].id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 如果需要添加的条目,不存在List当中,则需要提示是否添加条目,并且增加对应的处理
|
||||
this.$confirm(this.$t('tip.addOrganizationPrefix') + input + this.$t('tip.addOrganizationSuffix'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
addOrganization({ name: input }).then(response => {
|
||||
this.OrgzList.push(response.data);
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('error.addingFailure'));
|
||||
});
|
||||
}).catch(() => {
|
||||
this.formModel.organizationId = '';
|
||||
this.$message.info(this.$t('error.cancelled'));
|
||||
});
|
||||
},
|
||||
selectCommodity(data) {
|
||||
this.goodsList.forEach(v => {
|
||||
if (v.value == data) {
|
||||
this.formModel.price = v.price;
|
||||
}
|
||||
});
|
||||
},
|
||||
buildModel() {
|
||||
// 如果新增的条目不存在字典当中,则需要在临时字典中取对应的值
|
||||
let orgzId = this.formModel.organizationId;
|
||||
if (this.OrgzList && this.OrgzList.length) {
|
||||
for (var i in this.OrgzList) {
|
||||
if (orgzId === this.OrgzList[i].name) {
|
||||
orgzId = this.OrgzList[i].id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//构造基础数据
|
||||
let model = {
|
||||
organizationId: orgzId,
|
||||
goodsId: this.formModel.goodsId,
|
||||
orderType: this.formModel.orderType,
|
||||
amount: this.formModel.amount,
|
||||
// permissionType: this.formModel.permissionType,
|
||||
forever: this.formModel.forever,
|
||||
bizType: this.formModel.bizType,
|
||||
price: this.formModel.price,
|
||||
// monthAmount: this.formModel.monthAmount,
|
||||
// startTime: this.formModel.startTime,
|
||||
// payWays: this.formModel.payWays,
|
||||
}
|
||||
// 构造基础数据
|
||||
const model = {
|
||||
organizationId: orgzId,
|
||||
goodsId: this.formModel.goodsId,
|
||||
orderType: this.formModel.orderType,
|
||||
amount: this.formModel.amount,
|
||||
// permissionType: this.formModel.permissionType,
|
||||
forever: this.formModel.forever,
|
||||
bizType: this.formModel.bizType,
|
||||
price: this.formModel.price
|
||||
// monthAmount: this.formModel.monthAmount,
|
||||
// startTime: this.formModel.startTime,
|
||||
// payWays: this.formModel.payWays,
|
||||
};
|
||||
|
||||
//根据界面是否显示,序列对应的数据到model中
|
||||
if (this.isShowContractNo) { model.contractNo = this.formModel.contractNo; }
|
||||
// 根据界面是否显示,序列对应的数据到model中
|
||||
if (this.isShowContractNo) { model.contractNo = this.formModel.contractNo; }
|
||||
|
||||
if (this.isShowStartDate) { model.startTime = this.formModel.startTime; }
|
||||
if (this.isShowStartDate) { model.startTime = this.formModel.startTime; }
|
||||
|
||||
if (this.isShowMonths) { model.monthAmount = this.formModel.monthAmount; }
|
||||
if (this.isShowMonths) { model.monthAmount = this.formModel.monthAmount; }
|
||||
|
||||
if (this.isShowPrice) { model.totalPrice = this.formModel.totalPrice; }
|
||||
if (this.isShowPrice) { model.totalPrice = this.formModel.totalPrice; }
|
||||
|
||||
if (this.isShowPayType) { model.payWays = this.formModel.payWays; }
|
||||
if (this.isShowPayType) { model.payWays = this.formModel.payWays; }
|
||||
|
||||
if (this.isShowPayStatus) { model.payStatus = this.formModel.payStatus; }
|
||||
if (this.isShowPayStatus) { model.payStatus = this.formModel.payStatus; }
|
||||
|
||||
if (this.isShowSeller) { model.sellerId = this.formModel.sellerId; }
|
||||
if (this.isShowSeller) { model.sellerId = this.formModel.sellerId; }
|
||||
|
||||
//如果是续费类型,则需要将权限ID一并返回回去
|
||||
if (this.isReNew) { model.permissionId = this.$route.params.orderId; }
|
||||
// 如果是续费类型,则需要将权限ID一并返回回去
|
||||
if (this.isReNew) { model.permissionId = this.$route.params.orderId; }
|
||||
|
||||
return model;
|
||||
},
|
||||
create() {
|
||||
this.$refs.dataform.validateForm(() => {
|
||||
this.loading = true;
|
||||
createOrder(this.buildModel()).then(response => {
|
||||
this.turnback();
|
||||
this.loading = false;
|
||||
this.$message.success(this.$t('tip.creatingSuccessful'));
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.$messageBox(this.$t('tip.creatingFailed'));
|
||||
});
|
||||
});
|
||||
},
|
||||
update() {
|
||||
this.$refs.dataform.validateForm(() => {
|
||||
this.loading = true;
|
||||
updateOrder(this.buildModel()).then(response => {
|
||||
this.turnback();
|
||||
this.loading = false;
|
||||
this.$message.success(this.$t('tip.updateSuccessfully'));
|
||||
}).catch(error => {
|
||||
this.loading = false;
|
||||
this.$messageBox(this.$t('tip.updateFailed'))
|
||||
});
|
||||
})
|
||||
},
|
||||
turnback() {
|
||||
this.$router.go(-1)
|
||||
}
|
||||
}
|
||||
}
|
||||
return model;
|
||||
},
|
||||
create() {
|
||||
this.$refs.dataform.validateForm(() => {
|
||||
this.loading = true;
|
||||
createOrder(this.buildModel()).then(response => {
|
||||
this.turnback();
|
||||
this.loading = false;
|
||||
this.$message.success(this.$t('tip.creatingSuccessful'));
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$messageBox(this.$t('tip.creatingFailed'));
|
||||
});
|
||||
});
|
||||
},
|
||||
update() {
|
||||
this.$refs.dataform.validateForm(() => {
|
||||
this.loading = true;
|
||||
updateOrder(this.buildModel()).then(response => {
|
||||
this.turnback();
|
||||
this.loading = false;
|
||||
this.$message.success(this.$t('tip.updateSuccessfully'));
|
||||
}).catch(() => {
|
||||
this.loading = false;
|
||||
this.$messageBox(this.$t('tip.updateFailed'));
|
||||
});
|
||||
});
|
||||
},
|
||||
turnback() {
|
||||
this.$router.go(-1);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
@ -534,7 +531,7 @@
|
||||
/deep/ {
|
||||
.el-select {
|
||||
float: left;
|
||||
width: calc(600px);
|
||||
width: calc(500px);
|
||||
}
|
||||
|
||||
.el-input-number {
|
||||
|
@ -1,312 +1,310 @@
|
||||
<template>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList">
|
||||
</QueryListPage>
|
||||
<can-distribute ref="canDistribute" @distribute="distribute"></can-distribute>
|
||||
<qr-code ref="qrCode"></qr-code>
|
||||
</div>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
<can-distribute ref="canDistribute" @distribute="distribute" />
|
||||
<qr-code ref="qrCode" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getOrderPageList, giveOrder } from '@/api/management/order';
|
||||
import { getSellerList } from '@/api/management/user';
|
||||
import { getOrganizationList } from '@/api/management/organization';
|
||||
import { giveLessons } from '@/api/management/distribute';
|
||||
import { OperatorModel } from '@/scripts/ConstDic';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import QrCode from '@/components/QrCode';
|
||||
import CanDistribute from './canDistribute';
|
||||
import { getOrderPageList } from '@/api/management/order';
|
||||
import { getSellerList } from '@/api/management/user';
|
||||
import { getOrganizationList } from '@/api/management/organization';
|
||||
import { giveLessons } from '@/api/management/distribute';
|
||||
import { OperatorModel } from '@/scripts/ConstDic';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import QrCode from '@/components/QrCode';
|
||||
import CanDistribute from './canDistribute';
|
||||
|
||||
export default {
|
||||
name: 'List',
|
||||
components: {
|
||||
QrCode,
|
||||
CanDistribute
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
SellerList: [],
|
||||
BizTypeList: [],
|
||||
OrderTypeList: [],
|
||||
PayTypeList: [],
|
||||
PayStatusList: [],
|
||||
// OrganizationList: [],
|
||||
WhetherTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '180px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'organizationId': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
'userName': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.userName'),
|
||||
},
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return row.organizationName },
|
||||
tagType: (row) => { return '' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.commodityName'),
|
||||
prop: 'goodsName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return '' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionNumber'),
|
||||
prop: 'amount'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether') },
|
||||
tagType: (row) => {
|
||||
return row.forever ? 'success' : 'danger';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startDate'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
format: 'yyyy-MM-dd'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.purchaseMonths'),
|
||||
prop: 'monthAmount'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.totalPrice'),
|
||||
prop: 'totalPrice'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.paymentMethod'),
|
||||
prop: 'payWays',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.payWays, this.PayTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return 'success' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.creationDate'),
|
||||
prop: 'createTime'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.orderType'),
|
||||
prop: 'orderType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.orderType, this.OrderTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return 'success' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.contractNumber'),
|
||||
prop: 'contractNo'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.businessType'),
|
||||
prop: 'bizType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.bizType, this.BizTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return 'success' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.paymentStatus'),
|
||||
prop: 'payStatus',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.payStatus, this.PayStatusList, ['value', 'label']) },
|
||||
tagType: (row) => {
|
||||
switch (row.payStatus) {
|
||||
case '01': return 'danger';
|
||||
case '02': return 'success';
|
||||
case '03': return 'info';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.salesman'),
|
||||
prop: 'sellerName',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return row.sellerName },
|
||||
tagType: (row) => { return 'success' }
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '260',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('global.edit'),
|
||||
handleClick: this.handleEdit
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.obtainQrCode'),
|
||||
type: "warning",
|
||||
handleClick: this.handleCanDistribute,
|
||||
showControl: (row) => { return row.bizType !== '02' && row.orderType !== '01' && row.qrCodeGenerated }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.generatingQRCode'),
|
||||
type: "warning",
|
||||
handleClick: this.handleCanDistribute,
|
||||
showControl: (row) => { return row.bizType !== '02' && row.orderType !== '01' && !row.qrCodeGenerated }
|
||||
},
|
||||
]
|
||||
},
|
||||
],
|
||||
actions: [
|
||||
{ text: this.$t('global.add'), btnCode: 'employee_insert', handler: this.handleNormalAdd },
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.queryForm.queryObject.organizationId.config.data.length = 0;
|
||||
getOrganizationList().then(response => {
|
||||
// this.OrganizationList = response.data;
|
||||
response.data.forEach(elem => {
|
||||
this.queryForm.queryObject.organizationId.config.data.push({ value: elem.id, label: elem.name });
|
||||
});
|
||||
});
|
||||
export default {
|
||||
name: 'List',
|
||||
components: {
|
||||
QrCode,
|
||||
CanDistribute
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
SellerList: [],
|
||||
BizTypeList: [],
|
||||
OrderTypeList: [],
|
||||
PayTypeList: [],
|
||||
PayStatusList: [],
|
||||
// OrganizationList: [],
|
||||
WhetherTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '180px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'organizationId': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
'userName': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.userName')
|
||||
},
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return row.organizationName; },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.commodityName'),
|
||||
prop: 'goodsName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionNumber'),
|
||||
prop: 'amount'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether'); },
|
||||
tagType: (row) => {
|
||||
return row.forever ? 'success' : 'danger';
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startDate'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
format: 'yyyy-MM-dd'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.purchaseMonths'),
|
||||
prop: 'monthAmount'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.totalPrice'),
|
||||
prop: 'totalPrice'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.paymentMethod'),
|
||||
prop: 'payWays',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.payWays, this.PayTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.creationDate'),
|
||||
prop: 'createTime'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.orderType'),
|
||||
prop: 'orderType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.orderType, this.OrderTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.contractNumber'),
|
||||
prop: 'contractNo'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.businessType'),
|
||||
prop: 'bizType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.bizType, this.BizTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.paymentStatus'),
|
||||
prop: 'payStatus',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.payStatus, this.PayStatusList, ['value', 'label']); },
|
||||
tagType: (row) => {
|
||||
switch (row.payStatus) {
|
||||
case '01': return 'danger';
|
||||
case '02': return 'success';
|
||||
case '03': return 'info';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.salesman'),
|
||||
prop: 'sellerName',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return row.sellerName; },
|
||||
tagType: (row) => { return 'success'; }
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '260',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('global.edit'),
|
||||
handleClick: this.handleEdit
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.obtainQrCode'),
|
||||
type: 'warning',
|
||||
handleClick: this.handleCanDistribute,
|
||||
showControl: (row) => { return row.bizType !== '02' && row.orderType !== '01' && row.qrCodeGenerated; }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.generatingQRCode'),
|
||||
type: 'warning',
|
||||
handleClick: this.handleCanDistribute,
|
||||
showControl: (row) => { return row.bizType !== '02' && row.orderType !== '01' && !row.qrCodeGenerated; }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: this.$t('global.add'), btnCode: 'employee_insert', handler: this.handleNormalAdd }
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.queryForm.queryObject.organizationId.config.data.length = 0;
|
||||
getOrganizationList().then(response => {
|
||||
// this.OrganizationList = response.data;
|
||||
response.data.forEach(elem => {
|
||||
this.queryForm.queryObject.organizationId.config.data.push({ value: elem.id, label: elem.name });
|
||||
});
|
||||
});
|
||||
|
||||
getSellerList().then(response => {
|
||||
this.SellerList = response.data;
|
||||
})
|
||||
getSellerList().then(response => {
|
||||
this.SellerList = response.data;
|
||||
});
|
||||
|
||||
this.$Dictionary.bizType().then(list => {
|
||||
this.$convertList(list, this.BizTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
})
|
||||
this.$Dictionary.bizType().then(list => {
|
||||
this.$convertList(list, this.BizTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.orderType().then(list => {
|
||||
this.$convertList(list, this.OrderTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.orderType().then(list => {
|
||||
this.$convertList(list, this.OrderTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
})
|
||||
this.$Dictionary.payType().then(list => {
|
||||
this.$convertList(list, this.PayTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.payType().then(list => {
|
||||
this.$convertList(list, this.PayTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
})
|
||||
this.$Dictionary.payStatus().then(list => {
|
||||
this.$convertList(list, this.PayStatusList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.payStatus().then(list => {
|
||||
this.$convertList(list, this.PayStatusList, elem => {
|
||||
return true;
|
||||
});
|
||||
})
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
})
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.permissionType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
},
|
||||
queryFunction(params) {
|
||||
return getOrderPageList(params);
|
||||
},
|
||||
handleNormalAdd() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.orderDraft}/add/0` });
|
||||
},
|
||||
handleEdit(index, data) {
|
||||
this.$alert('功能待开发', this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
callback: action => {
|
||||
}
|
||||
});
|
||||
},
|
||||
handleCanDistribute(index, data) {
|
||||
if (data.qrCodeGenerated) {
|
||||
data.canDistribute = true;
|
||||
this.distribute(data);
|
||||
} else {
|
||||
this.$refs.canDistribute.doShow(data);
|
||||
}
|
||||
},
|
||||
distribute(data) {
|
||||
const model = {
|
||||
amount: data.amount,
|
||||
forever: data.forever,
|
||||
orderCode: data.code,
|
||||
startTime: data.startTime + ' 00:00:00',
|
||||
monthAmount: data.monthAmount,
|
||||
canDistribute: data.canDistribute,
|
||||
operator: OperatorModel.TRANSFER,
|
||||
mapId: data.mapId,
|
||||
lessonId: data.lessonId || '',
|
||||
mapProductCode: data.mapProductCode || '',
|
||||
permissionType: data.permissionType,
|
||||
organizationId: data.organizationId
|
||||
};
|
||||
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.permissionType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
})
|
||||
},
|
||||
queryFunction(params) {
|
||||
return getOrderPageList(params);
|
||||
},
|
||||
handleNormalAdd() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.orderDraft}/add/0` })
|
||||
},
|
||||
handleEdit(index, data) {
|
||||
this.$alert('功能待开发', this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
callback: action => {
|
||||
}
|
||||
});
|
||||
},
|
||||
handleCanDistribute(index, data) {
|
||||
if (data.qrCodeGenerated) {
|
||||
data.canDistribute = true;
|
||||
this.distribute(data);
|
||||
} else {
|
||||
this.$refs.canDistribute.doShow(data);
|
||||
}
|
||||
},
|
||||
distribute(data) {
|
||||
let model = {
|
||||
amount: data.amount,
|
||||
forever: data.forever,
|
||||
orderCode: data.code,
|
||||
startTime: data.startTime + " 00:00:00",
|
||||
monthAmount: data.monthAmount,
|
||||
canDistribute: data.canDistribute,
|
||||
operator: OperatorModel.TRANSFER,
|
||||
mapId: data.mapId,
|
||||
lessonId: data.lessonId || '',
|
||||
mapProductCode: data.mapProductCode || '',
|
||||
permissionType: data.permissionType,
|
||||
organizationId: data.organizationId
|
||||
}
|
||||
giveLessons(model).then(response => {
|
||||
this.reloadTable();
|
||||
if (data.qrCodeGenerated) {
|
||||
this.$refs.qrCode.doShow({
|
||||
url: response.data,
|
||||
title: this.$t('orderAuthor.transferQRCode')
|
||||
});
|
||||
}
|
||||
|
||||
giveLessons(model).then(response => {
|
||||
this.reloadTable();
|
||||
if (data.qrCodeGenerated) {
|
||||
this.$refs.qrCode.doShow({
|
||||
url: response.data,
|
||||
title: this.$t('orderAuthor.transferQRCode')
|
||||
});
|
||||
}
|
||||
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('error.transferredQRCodeFailed'));
|
||||
});
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('error.transferredQRCodeFailed'));
|
||||
});
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -1,174 +1,169 @@
|
||||
<template>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList">
|
||||
</QueryListPage>
|
||||
<div class="draft">
|
||||
<el-button-group>
|
||||
<el-button type="primary" @click="turnback">{{$t('global.return')}}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
<div class="draft">
|
||||
<el-button-group>
|
||||
<el-button type="primary" @click="turnback">{{ $t('global.return') }}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { superAdmin } from '@/router';
|
||||
import { listPackagePermission, restorePackagePermission, getPermissionPackageDetail } from '@/api/management/distribute';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import { getPermissionPackageDetail } from '@/api/management/distribute';
|
||||
|
||||
export default {
|
||||
name: 'TrainsferDetail',
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
height: 0,
|
||||
WhetherTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userMobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return '' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList') },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether') },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
export default {
|
||||
name: 'TrainsferDetail',
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
height: 0,
|
||||
WhetherTypeList: [],
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userMobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList'); },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether'); },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseAuthorityStatus'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']) },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.permissionType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
},
|
||||
formatterDate(row, porpInfo) {
|
||||
if (row.hasOwnProperty(porpInfo.property)) {
|
||||
}
|
||||
return row[porpInfo.property];
|
||||
},
|
||||
queryFunction(params) {
|
||||
// if (params.permissionType) {
|
||||
return getPermissionPackageDetail(this.$route.params.permissionId, params)
|
||||
// }
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload()
|
||||
}
|
||||
},
|
||||
turnback() {
|
||||
this.$router.go(-1)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseAuthorityStatus'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']); },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.permissionType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
},
|
||||
formatterDate(row, porpInfo) {
|
||||
return row[porpInfo.property];
|
||||
},
|
||||
queryFunction(params) {
|
||||
// if (params.permissionType) {
|
||||
return getPermissionPackageDetail(this.$route.params.permissionId, params);
|
||||
// }
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
},
|
||||
turnback() {
|
||||
this.$router.go(-1);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||
.draft {
|
||||
|
@ -1,208 +1,221 @@
|
||||
<template>
|
||||
<el-dialog :title="title" :visible.sync="show" top="20px" width="90%" :before-close="doClose"
|
||||
:close-on-click-modal="false">
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList">
|
||||
</QueryListPage>
|
||||
</el-dialog>
|
||||
<el-dialog
|
||||
:title="title"
|
||||
:visible.sync="show"
|
||||
top="20px"
|
||||
width="90%"
|
||||
:before-close="doClose"
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listCanPackagePermission } from '@/api/management/distribute';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import { listCanPackagePermission } from '@/api/management/distribute';
|
||||
|
||||
export default {
|
||||
name: 'author',
|
||||
props: {
|
||||
ruleList: {
|
||||
type: Array
|
||||
},
|
||||
EffectiveTypeList: {
|
||||
type: Array,
|
||||
},
|
||||
PermissionTypeList: {
|
||||
type: Array
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
param: '',
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '100px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
'canDistribute': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.publicOrPrivate'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userMobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return '' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList') },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether') },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
// {
|
||||
// title: '权限总数',
|
||||
// prop: 'amount'
|
||||
// },
|
||||
// {
|
||||
// title: '剩余权限数量',
|
||||
// prop: 'remains'
|
||||
// },
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
export default {
|
||||
name: 'Author',
|
||||
props: {
|
||||
ruleList: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
effectiveTypeList: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
},
|
||||
permissionTypeList: {
|
||||
type: Array,
|
||||
default() {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
param: '',
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '100px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
'canDistribute': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.publicOrPrivate'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userName'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.userMobile'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList'); },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether'); },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
// {
|
||||
// title: '权限总数',
|
||||
// prop: 'amount'
|
||||
// },
|
||||
// {
|
||||
// title: '剩余权限数量',
|
||||
// prop: 'remains'
|
||||
// },
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '120',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('global.add'),
|
||||
handleClick: this.handlePut,
|
||||
type: '',
|
||||
showControl: (row) => { return !row.isPut && row.permissionType }
|
||||
},
|
||||
{
|
||||
name: this.$t('global.delete'),
|
||||
handleClick: this.handlePop,
|
||||
type: 'warning',
|
||||
showControl: (row) => { return row.isPut && row.permissionType }
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
PermissionTypeList: function (list) {
|
||||
if (list && list.length) {
|
||||
this.queryForm.queryObject.permissionType.config.data = list;
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
title() {
|
||||
return this.$t('orderAuthor.editPermissionRules');
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.queryForm.queryObject.canDistribute.config.data = this.$ConstSelect.PermissionUseList;
|
||||
},
|
||||
methods: {
|
||||
formatterDate(row, porpInfo) {
|
||||
return String(row[porpInfo.property] || '').split(' ')[0];
|
||||
},
|
||||
async queryFunction(params) {
|
||||
let resp = await listCanPackagePermission(params);
|
||||
this.ruleList.forEach(elem => {
|
||||
resp.data.list.forEach(item => {
|
||||
if (item.id == elem.id) {
|
||||
item.isPut = true;
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '120',
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('global.add'),
|
||||
handleClick: this.handlePut,
|
||||
type: '',
|
||||
showControl: (row) => { return !row.isPut && row.permissionType; }
|
||||
},
|
||||
{
|
||||
name: this.$t('global.delete'),
|
||||
handleClick: this.handlePop,
|
||||
type: 'warning',
|
||||
showControl: (row) => { return row.isPut && row.permissionType; }
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
title() {
|
||||
return this.$t('orderAuthor.editPermissionRules');
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
PermissionTypeList: function (list) {
|
||||
if (list && list.length) {
|
||||
this.queryForm.queryObject.permissionType.config.data = list;
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.queryForm.queryObject.canDistribute.config.data = this.$ConstSelect.PermissionUseList;
|
||||
},
|
||||
methods: {
|
||||
formatterDate(row, porpInfo) {
|
||||
return String(row[porpInfo.property] || '').split(' ')[0];
|
||||
},
|
||||
async queryFunction(params) {
|
||||
const resp = await listCanPackagePermission(params);
|
||||
this.ruleList.forEach(elem => {
|
||||
resp.data.list.forEach(item => {
|
||||
if (item.id == elem.id) {
|
||||
item.isPut = true;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
return resp;
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload()
|
||||
}
|
||||
},
|
||||
doShow() {
|
||||
this.show = true
|
||||
},
|
||||
doClose() {
|
||||
this.show = false;
|
||||
},
|
||||
handlePut(index, row) {
|
||||
this.$emit('addRuleForm', index, row);
|
||||
},
|
||||
handlePop(index, row) {
|
||||
this.$emit('deleteForm', index, row);
|
||||
}
|
||||
}
|
||||
}
|
||||
return resp;
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
},
|
||||
doShow() {
|
||||
this.show = true;
|
||||
},
|
||||
doClose() {
|
||||
this.show = false;
|
||||
},
|
||||
handlePut(index, row) {
|
||||
this.$emit('addRuleForm', index, row);
|
||||
},
|
||||
handlePop(index, row) {
|
||||
this.$emit('deleteForm', index, row);
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@ -7,7 +7,7 @@
|
||||
<el-step icon="el-icon-setting" />
|
||||
</el-steps>
|
||||
<el-card class="forms pack-rule">
|
||||
<el-button class="addList" size="small" @click="dialogSelect">{{$t('orderAuthor.addRecords')}}</el-button>
|
||||
<el-button class="addList" size="small" @click="dialogSelect">{{ $t('orderAuthor.addRecords') }}</el-button>
|
||||
<el-table
|
||||
:data="ruleList"
|
||||
border
|
||||
@ -28,7 +28,7 @@
|
||||
<el-table-column prop="remains" :label="this.$t('orderAuthor.residualPermissionNumber')" width="80" />
|
||||
<el-table-column :label="this.$t('global.operate')" width="60">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="deleteForm(scope.$index, scope.row)">{{$t('global.delete')}}
|
||||
<el-button type="text" size="small" @click="deleteForm(scope.$index, scope.row)">{{ $t('global.delete') }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -36,9 +36,9 @@
|
||||
</el-card>
|
||||
<div class="draft">
|
||||
<el-button-group>
|
||||
<el-button v-if="!urlInfo.url" type="primary" @click="packForm">{{$t('orderAuthor.packaging')}}</el-button>
|
||||
<el-button v-if="urlInfo.url" type="primary" @click="QrCodeShow">{{$t('orderAuthor.obtainQrCode')}}</el-button>
|
||||
<el-button type="primary" @click="turnback">{{$t('global.return')}}</el-button>
|
||||
<el-button v-if="!urlInfo.url" type="primary" @click="packForm">{{ $t('orderAuthor.packaging') }}</el-button>
|
||||
<el-button v-if="urlInfo.url" type="primary" @click="QrCodeShow">{{ $t('orderAuthor.obtainQrCode') }}</el-button>
|
||||
<el-button type="primary" @click="turnback">{{ $t('global.return') }}</el-button>
|
||||
</el-button-group>
|
||||
</div>
|
||||
<choose-permission
|
||||
|
@ -1,264 +1,261 @@
|
||||
<template>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList">
|
||||
</QueryListPage>
|
||||
<qr-code ref="qrCode"></qr-code>
|
||||
</div>
|
||||
<div>
|
||||
<QueryListPage ref="queryListPage" :pager-config="pagerConfig" :query-form="queryForm" :query-list="queryList" />
|
||||
<qr-code ref="qrCode" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { superAdmin } from '@/router';
|
||||
import { listPackagePermission, restorePackagePermission, getPackageQrCode, permissionDistributeUnPackage } from '@/api/management/distribute';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import QrCode from "@/components/QrCode";
|
||||
import { superAdmin } from '@/router';
|
||||
import { listPackagePermission, restorePackagePermission, getPackageQrCode, permissionDistributeUnPackage } from '@/api/management/distribute';
|
||||
import { UrlConfig } from '@/router/index';
|
||||
import QrCode from '@/components/QrCode';
|
||||
|
||||
export default {
|
||||
name: 'author',
|
||||
components: {
|
||||
QrCode
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'userMobile': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.founderPhone')
|
||||
},
|
||||
'userName': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.founder')
|
||||
},
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
'status': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.authorityStatus'),
|
||||
value: '1',
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.founder'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.founderPhone'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName',
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']) },
|
||||
tagType: (row) => { return '' }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList') },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether') },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
export default {
|
||||
name: 'Author',
|
||||
components: {
|
||||
QrCode
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
EffectiveTypeList: [],
|
||||
PermissionTypeList: [],
|
||||
pagerConfig: {
|
||||
pageSize: 'pageSize',
|
||||
pageIndex: 'pageNum'
|
||||
},
|
||||
queryForm: {
|
||||
labelWidth: '120px',
|
||||
reset: true,
|
||||
queryObject: {
|
||||
'userMobile': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.founderPhone')
|
||||
},
|
||||
'userName': {
|
||||
type: 'text',
|
||||
label: this.$t('orderAuthor.founder')
|
||||
},
|
||||
'permissionType': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.permissionType'),
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
},
|
||||
'status': {
|
||||
type: 'select',
|
||||
label: this.$t('orderAuthor.authorityStatus'),
|
||||
value: '1',
|
||||
config: {
|
||||
data: []
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queryList: {
|
||||
query: this.queryFunction,
|
||||
selectCheckShow: false,
|
||||
indexShow: true,
|
||||
columns: [
|
||||
{
|
||||
title: this.$t('orderAuthor.organizationOrEnterprise'),
|
||||
prop: 'organizationName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.founder'),
|
||||
prop: 'userName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.founderPhone'),
|
||||
prop: 'userMobile'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapName'),
|
||||
prop: 'mapName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.mapProductName'),
|
||||
prop: 'mapProductName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.courseName'),
|
||||
prop: 'lessonName'
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permissionType'),
|
||||
prop: 'permissionType',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.permissionType, this.PermissionTypeList, ['value', 'label']); },
|
||||
tagType: (row) => { return ''; }
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.publicOrPrivate'),
|
||||
prop: 'canDistribute',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.canDistribute, 'PermissionUseList'); },
|
||||
tagType: (row) => {
|
||||
switch (row.canDistribute) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.permanenceOrNot'),
|
||||
prop: 'forever',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$ConstSelect.translate(row.forever, 'Whether'); },
|
||||
tagType: (row) => {
|
||||
switch (row.forever) {
|
||||
case true: return 'success';
|
||||
case false: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.startTime'),
|
||||
prop: 'startTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.authorityStatus'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']) },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: '300',
|
||||
hide: (row) => { return this.$store.state.user.roles.indexOf(superAdmin) < 0; },
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('orderAuthor.obtainQrCode'),
|
||||
handleClick: this.handleRtCodeShow,
|
||||
type: '',
|
||||
showControl: (row) => { return true }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.authorityDetails'),
|
||||
handleClick: this.handlePermissionDetail,
|
||||
type: '',
|
||||
showControl: (row) => { return row.status == '1' && (row.source == '02' || row.source == '04') }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.recovery'),
|
||||
handleClick: this.handleRestore,
|
||||
type: 'danger',
|
||||
showControl: (row) => { return row.status == '1' && row.source == '04' }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.unpacking'),
|
||||
handleClick: this.handleUnPackage,
|
||||
type: 'danger',
|
||||
showControl: (row) => { return row.status == '1' && row.source == '02' }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: this.$t('orderAuthor.privilegePackaging'), btnCode: 'employee_insert', handler: this.handlePackage },
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.endTime'),
|
||||
prop: 'endTime',
|
||||
type: 'formatter',
|
||||
formatter: this.formatterDate
|
||||
},
|
||||
{
|
||||
title: this.$t('orderAuthor.authorityStatus'),
|
||||
prop: 'status',
|
||||
type: 'tag',
|
||||
columnValue: (row) => { return this.$convertField(row.status, this.EffectiveTypeList, ['value', 'label']); },
|
||||
tagType: (row) => {
|
||||
switch (row.status) {
|
||||
case '1': return 'success';
|
||||
default: return 'danger';
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
title: this.$t('global.operate'),
|
||||
width: this.$i18n.locale == 'en' ? '370': '300',
|
||||
hide: (row) => { return this.$store.state.user.roles.indexOf(superAdmin) < 0; },
|
||||
buttons: [
|
||||
{
|
||||
name: this.$t('orderAuthor.obtainQrCode'),
|
||||
handleClick: this.handleRtCodeShow,
|
||||
type: '',
|
||||
showControl: (row) => { return true; }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.authorityDetails'),
|
||||
handleClick: this.handlePermissionDetail,
|
||||
type: '',
|
||||
showControl: (row) => { return row.status == '1' && (row.source == '02' || row.source == '04'); }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.recovery'),
|
||||
handleClick: this.handleRestore,
|
||||
type: 'danger',
|
||||
showControl: (row) => { return row.status == '1' && row.source == '04'; }
|
||||
},
|
||||
{
|
||||
name: this.$t('orderAuthor.unpacking'),
|
||||
handleClick: this.handleUnPackage,
|
||||
type: 'danger',
|
||||
showControl: (row) => { return row.status == '1' && row.source == '02'; }
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
actions: [
|
||||
{ text: this.$t('orderAuthor.privilegePackaging'), btnCode: 'employee_insert', handler: this.handlePackage }
|
||||
]
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.status.config.data.push({ value: elem.code, label: elem.name });
|
||||
})
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.permissionType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
this.PermissionTypeList.push({ value: undefined, label: this.$t('orderAuthor.permissionPack') });
|
||||
});
|
||||
},
|
||||
formatterDate(row, porpInfo) {
|
||||
if (row.hasOwnProperty(porpInfo.property)) {
|
||||
}
|
||||
return row[porpInfo.property];
|
||||
},
|
||||
queryFunction(params) {
|
||||
return listPackagePermission(params);
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload()
|
||||
}
|
||||
},
|
||||
handlePermissionDetail(index, row) {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.transferDetail}/${row.id}` })
|
||||
},
|
||||
handleRtCodeShow(index, row) {
|
||||
getPackageQrCode({ id: row.id }).then(resp => {
|
||||
this.$refs.qrCode.doShow({
|
||||
url: resp.data,
|
||||
title: this.$t('orderAuthor.privilegeTransferQRCode')
|
||||
});
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('tip.getQRCodeFailure'));
|
||||
})
|
||||
},
|
||||
handleRestore(index, row) {
|
||||
this.$confirm(this.$t('tip.recoveryPrivilegeTip'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
restorePackagePermission(row.id).then(resp => {
|
||||
this.reloadTable();
|
||||
this.$message.success(this.$t('tip.recoveryPrivilegesSuccessful'));
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('tip.recoveryPrivilegesFailed'));
|
||||
})
|
||||
}).catch(() => { });
|
||||
},
|
||||
handleUnPackage(index, row) {
|
||||
this.$confirm(this.$t('tip.unpackingTip'), this.$t('tip.hint'), {
|
||||
confirmButtonText: this.$t('tip.confirm'),
|
||||
cancelButtonText: this.$t('tip.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
permissionDistributeUnPackage(row.id).then(resp => {
|
||||
this.reloadTable();
|
||||
this.$message.success(this.$t('tip.unpackingSuccessful'));
|
||||
}).catch(error => {
|
||||
this.$messageBox(this.$t('tip.unpackingFailed'));
|
||||
})
|
||||
}).catch(() => { });
|
||||
},
|
||||
handlePackage() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.trainferPackage}` })
|
||||
}
|
||||
}
|
||||
}
|
||||
mounted() {
|
||||
this.loadInitData();
|
||||
},
|
||||
methods: {
|
||||
loadInitData() {
|
||||
this.$Dictionary.effectiveType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.status.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.EffectiveTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
});
|
||||
this.$Dictionary.permissionType().then(list => {
|
||||
list.forEach(elem => {
|
||||
this.queryForm.queryObject.permissionType.config.data.push({ value: elem.code, label: elem.name });
|
||||
});
|
||||
this.$convertList(list, this.PermissionTypeList, elem => {
|
||||
return true;
|
||||
});
|
||||
this.PermissionTypeList.push({ value: undefined, label: this.$t('orderAuthor.permissionPack') });
|
||||
});
|
||||
},
|
||||
formatterDate(row, porpInfo) {
|
||||
return row[porpInfo.property];
|
||||
},
|
||||
queryFunction(params) {
|
||||
return listPackagePermission(params);
|
||||
},
|
||||
reloadTable() {
|
||||
if (this.queryList && this.queryList.reload) {
|
||||
this.queryList.reload();
|
||||
}
|
||||
},
|
||||
handlePermissionDetail(index, row) {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.transferDetail}/${row.id}` });
|
||||
},
|
||||
handleRtCodeShow(index, row) {
|
||||
getPackageQrCode({ id: row.id }).then(resp => {
|
||||
this.$refs.qrCode.doShow({
|
||||
url: resp.data,
|
||||
title: this.$t('orderAuthor.privilegeTransferQRCode')
|
||||
});
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.getQRCodeFailure'));
|
||||
});
|
||||
},
|
||||
handleRestore(index, row) {
|
||||
this.$confirm(this.$t('tip.recoveryPrivilegeTip'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
restorePackagePermission(row.id).then(resp => {
|
||||
this.reloadTable();
|
||||
this.$message.success(this.$t('tip.recoveryPrivilegesSuccessful'));
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.recoveryPrivilegesFailed'));
|
||||
});
|
||||
}).catch(() => { });
|
||||
},
|
||||
handleUnPackage(index, row) {
|
||||
this.$confirm(this.$t('tip.unpackingTip'), this.$t('global.tips'), {
|
||||
confirmButtonText: this.$t('global.confirm'),
|
||||
cancelButtonText: this.$t('global.cancel'),
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
permissionDistributeUnPackage(row.id).then(resp => {
|
||||
this.reloadTable();
|
||||
this.$message.success(this.$t('tip.unpackingSuccessful'));
|
||||
}).catch(() => {
|
||||
this.$messageBox(this.$t('tip.unpackingFailed'));
|
||||
});
|
||||
}).catch(() => { });
|
||||
},
|
||||
handlePackage() {
|
||||
this.$router.push({ path: `${UrlConfig.orderauthor.trainferPackage}` });
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
Loading…
Reference in New Issue
Block a user