提交 04eba253 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

修复了在当前表格当前页删除为空的情况下页面被锁死的bug

上级 466d7814
...@@ -24,7 +24,7 @@ func Create{{.StructName}}({{.Abbreviation}} model.{{.StructName}}) (err error) ...@@ -24,7 +24,7 @@ func Create{{.StructName}}({{.Abbreviation}} model.{{.StructName}}) (err error)
//@return: err error //@return: err error
func Delete{{.StructName}}({{.Abbreviation}} model.{{.StructName}}) (err error) { func Delete{{.StructName}}({{.Abbreviation}} model.{{.StructName}}) (err error) {
err = global.GVA_DB.Delete({{.Abbreviation}}).Error err = global.GVA_DB.Delete(&{{.Abbreviation}}).Error
return err return err
} }
......
...@@ -227,6 +227,9 @@ export default { ...@@ -227,6 +227,9 @@ export default {
type: 'success', type: 'success',
message: '删除成功' message: '删除成功'
}) })
if (this.tableData.length == ids.length) {
this.page--;
}
this.deleteVisible = false this.deleteVisible = false
this.getTableData() this.getTableData()
} }
...@@ -269,6 +272,9 @@ export default { ...@@ -269,6 +272,9 @@ export default {
type: "success", type: "success",
message: "删除成功" message: "删除成功"
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}, },
......
...@@ -24,7 +24,7 @@ func CreateExaCustomer(e model.ExaCustomer) (err error) { ...@@ -24,7 +24,7 @@ func CreateExaCustomer(e model.ExaCustomer) (err error) {
//@return: err error //@return: err error
func DeleteExaCustomer(e model.ExaCustomer) (err error) { func DeleteExaCustomer(e model.ExaCustomer) (err error) {
err = global.GVA_DB.Delete(e).Error err = global.GVA_DB.Delete(&e).Error
return err return err
} }
......
...@@ -42,10 +42,10 @@ func DeleteFile(file model.ExaFileUploadAndDownload) (err error) { ...@@ -42,10 +42,10 @@ func DeleteFile(file model.ExaFileUploadAndDownload) (err error) {
var fileFromDb model.ExaFileUploadAndDownload var fileFromDb model.ExaFileUploadAndDownload
err, fileFromDb = FindFile(file.ID) err, fileFromDb = FindFile(file.ID)
oss := upload.NewOss() oss := upload.NewOss()
if err = oss.DeleteFile(fileFromDb.Key); err != nil{ if err = oss.DeleteFile(fileFromDb.Key); err != nil {
return errors.New("文件删除失败") return errors.New("文件删除失败")
} }
err = global.GVA_DB.Where("id = ?", file.ID).Unscoped().Delete(file).Error err = global.GVA_DB.Where("id = ?", file.ID).Unscoped().Delete(&file).Error
return err return err
} }
......
...@@ -28,7 +28,7 @@ func CreateApi(api model.SysApi) (err error) { ...@@ -28,7 +28,7 @@ func CreateApi(api model.SysApi) (err error) {
//@return: err error //@return: err error
func DeleteApi(api model.SysApi) (err error) { func DeleteApi(api model.SysApi) (err error) {
err = global.GVA_DB.Delete(api).Error err = global.GVA_DB.Delete(&api).Error
ClearCasbin(1, api.Path, api.Method) ClearCasbin(1, api.Path, api.Method)
return err return err
} }
......
...@@ -29,7 +29,7 @@ func CreateSysDictionary(sysDictionary model.SysDictionary) (err error) { ...@@ -29,7 +29,7 @@ func CreateSysDictionary(sysDictionary model.SysDictionary) (err error) {
//@return: err error //@return: err error
func DeleteSysDictionary(sysDictionary model.SysDictionary) (err error) { func DeleteSysDictionary(sysDictionary model.SysDictionary) (err error) {
err = global.GVA_DB.Delete(sysDictionary).Delete(&sysDictionary.SysDictionaryDetails).Error err = global.GVA_DB.Delete(&sysDictionary).Delete(&sysDictionary.SysDictionaryDetails).Error
return err return err
} }
......
...@@ -24,7 +24,7 @@ func CreateSysDictionaryDetail(sysDictionaryDetail model.SysDictionaryDetail) (e ...@@ -24,7 +24,7 @@ func CreateSysDictionaryDetail(sysDictionaryDetail model.SysDictionaryDetail) (e
//@return: err error //@return: err error
func DeleteSysDictionaryDetail(sysDictionaryDetail model.SysDictionaryDetail) (err error) { func DeleteSysDictionaryDetail(sysDictionaryDetail model.SysDictionaryDetail) (err error) {
err = global.GVA_DB.Delete(sysDictionaryDetail).Error err = global.GVA_DB.Delete(&sysDictionaryDetail).Error
return err return err
} }
......
...@@ -36,7 +36,7 @@ func DeleteSysOperationRecordByIds(ids request.IdsReq) (err error) { ...@@ -36,7 +36,7 @@ func DeleteSysOperationRecordByIds(ids request.IdsReq) (err error) {
//@return: err error //@return: err error
func DeleteSysOperationRecord(sysOperationRecord model.SysOperationRecord) (err error) { func DeleteSysOperationRecord(sysOperationRecord model.SysOperationRecord) (err error) {
err = global.GVA_DB.Delete(sysOperationRecord).Error err = global.GVA_DB.Delete(&sysOperationRecord).Error
return err return err
} }
......
...@@ -36,12 +36,12 @@ func CreateWorkflowProcess(workflowProcess model.WorkflowProcess) (err error) { ...@@ -36,12 +36,12 @@ func CreateWorkflowProcess(workflowProcess model.WorkflowProcess) (err error) {
func DeleteWorkflowProcess(workflowProcess model.WorkflowProcess) (err error) { func DeleteWorkflowProcess(workflowProcess model.WorkflowProcess) (err error) {
err = global.GVA_DB.Transaction(func(tx *gorm.DB) error { err = global.GVA_DB.Transaction(func(tx *gorm.DB) error {
var txErr error var txErr error
txErr = tx.Delete(workflowProcess).Error txErr = tx.Delete(&workflowProcess).Error
if txErr != nil { if txErr != nil {
return txErr return txErr
} }
var edges []model.WorkflowEdge var edges []model.WorkflowEdge
txErr = tx.Delete(model.WorkflowNode{}, "workflow_process_id = ?", workflowProcess.ID).Error txErr = tx.Delete(&model.WorkflowNode{}, "workflow_process_id = ?", workflowProcess.ID).Error
if txErr != nil { if txErr != nil {
return txErr return txErr
} }
...@@ -86,7 +86,7 @@ func UpdateWorkflowProcess(workflowProcess *model.WorkflowProcess) (err error) { ...@@ -86,7 +86,7 @@ func UpdateWorkflowProcess(workflowProcess *model.WorkflowProcess) (err error) {
if txErr != nil { if txErr != nil {
return txErr return txErr
} }
txErr = tx.Unscoped().Delete(model.WorkflowNode{}, "workflow_process_id = ?", workflowProcess.ID).Error txErr = tx.Unscoped().Delete(&model.WorkflowNode{}, "workflow_process_id = ?", workflowProcess.ID).Error
if txErr != nil { if txErr != nil {
return txErr return txErr
} }
...@@ -101,11 +101,11 @@ func UpdateWorkflowProcess(workflowProcess *model.WorkflowProcess) (err error) { ...@@ -101,11 +101,11 @@ func UpdateWorkflowProcess(workflowProcess *model.WorkflowProcess) (err error) {
for _, v := range edges { for _, v := range edges {
edgesIds = append(edgesIds, v.ID) edgesIds = append(edgesIds, v.ID)
} }
txErr = tx.Unscoped().Delete(model.WorkflowStartPoint{}, "workflow_edge_id in ?", edgesIds).Error txErr = tx.Unscoped().Delete(&model.WorkflowStartPoint{}, "workflow_edge_id in ?", edgesIds).Error
if txErr != nil { if txErr != nil {
return txErr return txErr
} }
txErr = tx.Unscoped().Delete(model.WorkflowEndPoint{}, "workflow_edge_id in ?", edgesIds).Error txErr = tx.Unscoped().Delete(&model.WorkflowEndPoint{}, "workflow_edge_id in ?", edgesIds).Error
if txErr != nil { if txErr != nil {
return txErr return txErr
} }
......
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<el-button @click="enterDialog" type="primary">确 定</el-button> <el-button @click="enterDialog" type="primary">确 定</el-button>
</div> </div>
</el-dialog> </el-dialog>
<div class="tips"> 在资源权限中将此角色的资源权限清空 或者不包含创建者的角色 即可屏蔽此客户资源的显示</div> <div class="tips">在资源权限中将此角色的资源权限清空 或者不包含创建者的角色 即可屏蔽此客户资源的显示</div>
</div> </div>
</template> </template>
...@@ -124,8 +124,11 @@ export default { ...@@ -124,8 +124,11 @@ export default {
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: "success", type: "success",
message: "删除成功" message: ""
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}, },
......
...@@ -12,9 +12,7 @@ ...@@ -12,9 +12,7 @@
:show-file-list="false" :show-file-list="false"
> >
<el-button size="small" type="primary">点击上传</el-button> <el-button size="small" type="primary">点击上传</el-button>
<div class="el-upload__tip" slot="tip"> <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
只能上传jpg/png文件,且不超过500kb
</div>
</el-upload> </el-upload>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -35,33 +33,20 @@ ...@@ -35,33 +33,20 @@
<div>{{ scope.row.UpdatedAt | formatDate }}</div> <div>{{ scope.row.UpdatedAt | formatDate }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="文件名" prop="name" width="180"></el-table-column>
label="文件名" <el-table-column label="链接" prop="url" min-width="300"></el-table-column>
prop="name"
width="180"
></el-table-column>
<el-table-column
label="链接"
prop="url"
min-width="300"
></el-table-column>
<el-table-column label="标签" prop="tag" width="100"> <el-table-column label="标签" prop="tag" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag <el-tag
:type="scope.row.tag === 'jpg' ? 'primary' : 'success'" :type="scope.row.tag === 'jpg' ? 'primary' : 'success'"
disable-transitions disable-transitions
>{{ scope.row.tag }}</el-tag >{{ scope.row.tag }}</el-tag>
>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="160"> <el-table-column label="操作" width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="downloadFile(scope.row)" size="small" type="text" <el-button @click="downloadFile(scope.row)" size="small" type="text">下载</el-button>
>下载</el-button <el-button @click="deleteFile(scope.row)" size="small" type="text">删除</el-button>
>
<el-button @click="deleteFile(scope.row)" size="small" type="text"
>删除</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -93,7 +78,7 @@ export default { ...@@ -93,7 +78,7 @@ export default {
mixins: [infoList], mixins: [infoList],
components: { components: {
CustomPic, CustomPic,
UploadImage, UploadImage
}, },
data() { data() {
return { return {
...@@ -101,43 +86,46 @@ export default { ...@@ -101,43 +86,46 @@ export default {
listApi: getFileList, listApi: getFileList,
path: path, path: path,
tableData: [], tableData: [],
imageUrl: "", imageUrl: ""
}; };
}, },
computed: { computed: {
...mapGetters("user", ["userInfo", "token"]), ...mapGetters("user", ["userInfo", "token"])
}, },
filters: { filters: {
formatDate: function (time) { formatDate: function(time) {
if (time != null && time != "") { if (time != null && time != "") {
var date = new Date(time); var date = new Date(time);
return formatTimeToStr(date, "yyyy-MM-dd hh:mm:ss"); return formatTimeToStr(date, "yyyy-MM-dd hh:mm:ss");
} else { } else {
return ""; return "";
} }
}, }
}, },
methods: { methods: {
async deleteFile(row) { async deleteFile(row) {
this.$confirm("此操作将永久文件, 是否继续?", "提示", { this.$confirm("此操作将永久文件, 是否继续?", "提示", {
confirmButtonText: "确定", confirmButtonText: "确定",
cancelButtonText: "取消", cancelButtonText: "取消",
type: "warning", type: "warning"
}) })
.then(async () => { .then(async () => {
const res = await deleteFile(row); const res = await deleteFile(row);
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: "success", type: "success",
message: "删除成功!", message: "删除成功!"
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}) })
.catch(() => { .catch(() => {
this.$message({ this.$message({
type: "info", type: "info",
message: "已取消删除", message: "已取消删除"
}); });
}); });
}, },
...@@ -161,7 +149,7 @@ export default { ...@@ -161,7 +149,7 @@ export default {
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: "success", type: "success",
message: "上传成功", message: "上传成功"
}); });
if (res.code == 0) { if (res.code == 0) {
this.getTableData(); this.getTableData();
...@@ -169,23 +157,23 @@ export default { ...@@ -169,23 +157,23 @@ export default {
} else { } else {
this.$message({ this.$message({
type: "warning", type: "warning",
message: res.msg, message: res.msg
}); });
} }
}, },
uploadError() { uploadError() {
this.$message({ this.$message({
type: "error", type: "error",
message: "上传失败", message: "上传失败"
}); });
this.fullscreenLoading = false; this.fullscreenLoading = false;
}, },
downloadFile(row) { downloadFile(row) {
downloadImage(row.url, row.name); downloadImage(row.url, row.name);
}, }
}, },
created() { created() {
this.getTableData(); this.getTableData();
}, }
}; };
</script> </script>
...@@ -52,7 +52,12 @@ ...@@ -52,7 +52,12 @@
<el-table-column fixed="right" label="操作" width="200"> <el-table-column fixed="right" label="操作" width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="editApi(scope.row)" size="small" type="primary" icon="el-icon-edit">编辑</el-button> <el-button @click="editApi(scope.row)" size="small" type="primary" icon="el-icon-edit">编辑</el-button>
<el-button @click="deleteApi(scope.row)" size="small" type="danger" icon="el-icon-delete">删除</el-button> <el-button
@click="deleteApi(scope.row)"
size="small"
type="danger"
icon="el-icon-delete"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -108,194 +113,197 @@ import { ...@@ -108,194 +113,197 @@ import {
createApi, createApi,
updateApi, updateApi,
deleteApi deleteApi
} from '@/api/api' } from "@/api/api";
import infoList from '@/mixins/infoList' import infoList from "@/mixins/infoList";
import { toSQLLine } from '@/utils/stringFun' import { toSQLLine } from "@/utils/stringFun";
const methodOptions = [ const methodOptions = [
{ {
value: 'POST', value: "POST",
label: '创建', label: "创建",
type: 'success' type: "success"
}, },
{ {
value: 'GET', value: "GET",
label: '查看', label: "查看",
type: '' type: ""
}, },
{ {
value: 'PUT', value: "PUT",
label: '更新', label: "更新",
type: 'warning' type: "warning"
}, },
{ {
value: 'DELETE', value: "DELETE",
label: '删除', label: "删除",
type: 'danger' type: "danger"
} }
] ];
export default { export default {
name: 'Api', name: "Api",
mixins: [infoList], mixins: [infoList],
data() { data() {
return { return {
listApi: getApiList, listApi: getApiList,
dialogFormVisible: false, dialogFormVisible: false,
dialogTitle: '新增Api', dialogTitle: "新增Api",
form: { form: {
path: '', path: "",
apiGroup: '', apiGroup: "",
method: '', method: "",
description: '' description: ""
}, },
methodOptions: methodOptions, methodOptions: methodOptions,
type: '', type: "",
rules: { rules: {
path: [{ required: true, message: '请输入api路径', trigger: 'blur' }], path: [{ required: true, message: "请输入api路径", trigger: "blur" }],
apiGroup: [ apiGroup: [
{ required: true, message: '请输入组名称', trigger: 'blur' } { required: true, message: "请输入组名称", trigger: "blur" }
], ],
method: [ method: [
{ required: true, message: '请选择请求方式', trigger: 'blur' } { required: true, message: "请选择请求方式", trigger: "blur" }
], ],
description: [ description: [
{ required: true, message: '请输入api介绍', trigger: 'blur' } { required: true, message: "请输入api介绍", trigger: "blur" }
] ]
} }
} };
}, },
methods: { methods: {
// 排序 // 排序
sortChange({ prop, order }) { sortChange({ prop, order }) {
if (prop) { if (prop) {
this.searchInfo.orderKey = toSQLLine(prop) this.searchInfo.orderKey = toSQLLine(prop);
this.searchInfo.desc = order == 'descending' this.searchInfo.desc = order == "descending";
} }
this.getTableData() this.getTableData();
}, },
//条件搜索前端看此方法 //条件搜索前端看此方法
onSubmit() { onSubmit() {
this.page = 1 this.page = 1;
this.pageSize = 10 this.pageSize = 10;
this.getTableData() this.getTableData();
}, },
initForm() { initForm() {
this.$refs.apiForm.resetFields() this.$refs.apiForm.resetFields();
this.form= { this.form = {
path: '', path: "",
apiGroup: '', apiGroup: "",
method: '', method: "",
description: '' description: ""
} };
}, },
closeDialog() { closeDialog() {
this.initForm() this.initForm();
this.dialogFormVisible = false this.dialogFormVisible = false;
}, },
openDialog(type) { openDialog(type) {
switch (type) { switch (type) {
case 'addApi': case "addApi":
this.dialogTitlethis = '新增Api' this.dialogTitlethis = "新增Api";
break break;
case 'edit': case "edit":
this.dialogTitlethis = '编辑Api' this.dialogTitlethis = "编辑Api";
break break;
default: default:
break break;
} }
this.type = type this.type = type;
this.dialogFormVisible = true this.dialogFormVisible = true;
}, },
async editApi(row) { async editApi(row) {
const res = await getApiById({ id: row.ID }) const res = await getApiById({ id: row.ID });
this.form = res.data.api this.form = res.data.api;
this.openDialog('edit') this.openDialog("edit");
}, },
async deleteApi(row) { async deleteApi(row) {
this.$confirm('此操作将永久删除所有角色下该菜单, 是否继续?', '提示', { this.$confirm("此操作将永久删除所有角色下该api, 是否继续?", "提示", {
confirmButtonText: '确定', confirmButtonText: "确定",
cancelButtonText: '取消', cancelButtonText: "取消",
type: 'warning' type: "warning"
}) })
.then(async () => { .then(async () => {
const res = await deleteApi(row) const res = await deleteApi(row);
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: 'success', type: "success",
message: '删除成功!' message: "删除成功!"
}) });
this.getTableData() if (this.tableData.length == 1) {
this.page--;
}
this.getTableData();
} }
}) })
.catch(() => { .catch(() => {
this.$message({ this.$message({
type: 'info', type: "info",
message: '已取消删除' message: "已取消删除"
}) });
}) });
}, },
async enterDialog() { async enterDialog() {
this.$refs.apiForm.validate(async valid => { this.$refs.apiForm.validate(async valid => {
if (valid) { if (valid) {
switch (this.type) { switch (this.type) {
case 'addApi': case "addApi":
{ {
const res = await createApi(this.form) const res = await createApi(this.form);
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: 'success', type: "success",
message: '添加成功', message: "添加成功",
showClose: true showClose: true
}) });
} }
this.getTableData() this.getTableData();
this.closeDialog() this.closeDialog();
} }
break break;
case 'edit': case "edit":
{ {
const res = await updateApi(this.form) const res = await updateApi(this.form);
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: 'success', type: "success",
message: '编辑成功', message: "编辑成功",
showClose: true showClose: true
}) });
} }
this.getTableData() this.getTableData();
this.closeDialog() this.closeDialog();
} }
break break;
default: default:
{ {
this.$message({ this.$message({
type: 'error', type: "error",
message: '未知操作', message: "未知操作",
showClose: true showClose: true
}) });
} }
break break;
} }
} }
}) });
} }
}, },
filters: { filters: {
methodFiletr(value) { methodFiletr(value) {
const target = methodOptions.filter(item => item.value === value)[0] const target = methodOptions.filter(item => item.value === value)[0];
// return target && `${target.label}(${target.value})` // return target && `${target.label}(${target.value})`
return target && `${target.label}` return target && `${target.label}`;
}, },
tagTypeFiletr(value) { tagTypeFiletr(value) {
const target = methodOptions.filter(item => item.value === value)[0] const target = methodOptions.filter(item => item.value === value)[0];
return target && `${target.type}` return target && `${target.type}`;
} }
}, },
created(){ created() {
this.getTableData() this.getTableData();
} }
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.button-box { .button-box {
......
...@@ -106,10 +106,10 @@ export default { ...@@ -106,10 +106,10 @@ export default {
mixins: [infoList], mixins: [infoList],
data() { data() {
var mustUint = (rule, value, callback) => { var mustUint = (rule, value, callback) => {
if (!(/^[0-9]*[1-9][0-9]*$/).test(value)){ if (!/^[0-9]*[1-9][0-9]*$/.test(value)) {
return callback(new Error("请输入正整数")); return callback(new Error("请输入正整数"));
} }
return callback() return callback();
}; };
return { return {
...@@ -136,7 +136,7 @@ export default { ...@@ -136,7 +136,7 @@ export default {
rules: { rules: {
authorityId: [ authorityId: [
{ required: true, message: "请输入角色ID", trigger: "blur" }, { required: true, message: "请输入角色ID", trigger: "blur" },
{validator: mustUint, trigger: 'blur' } { validator: mustUint, trigger: "blur" }
], ],
authorityName: [ authorityName: [
{ required: true, message: "请输入角色名", trigger: "blur" } { required: true, message: "请输入角色名", trigger: "blur" }
...@@ -191,6 +191,9 @@ export default { ...@@ -191,6 +191,9 @@ export default {
type: "success", type: "success",
message: "删除成功!" message: "删除成功!"
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}) })
......
...@@ -4,27 +4,19 @@ ...@@ -4,27 +4,19 @@
<el-form :inline="true" :model="searchInfo" class="demo-form-inline"> <el-form :inline="true" :model="searchInfo" class="demo-form-inline">
<el-form-item label="字典名(中)"> <el-form-item label="字典名(中)">
<el-input placeholder="搜索条件" v-model="searchInfo.name"></el-input> <el-input placeholder="搜索条件" v-model="searchInfo.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="字典名(英)"> <el-form-item label="字典名(英)">
<el-input placeholder="搜索条件" v-model="searchInfo.type"></el-input> <el-input placeholder="搜索条件" v-model="searchInfo.type"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="status"> <el-form-item label="状态" prop="status">
<el-select v-model="searchInfo.status" clear placeholder="请选择"> <el-select v-model="searchInfo.status" clear placeholder="请选择">
<el-option <el-option key="true" label="是" value="true"></el-option>
key="true" <el-option key="false" label="否" value="false"></el-option>
label="是" </el-select>
value="true"> </el-form-item>
</el-option>
<el-option
key="false"
label="否"
value="false">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="描述"> <el-form-item label="描述">
<el-input placeholder="搜索条件" v-model="searchInfo.desc"></el-input> <el-input placeholder="搜索条件" v-model="searchInfo.desc"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="onSubmit" type="primary">查询</el-button> <el-button @click="onSubmit" type="primary">查询</el-button>
</el-form-item> </el-form-item>
...@@ -41,21 +33,21 @@ ...@@ -41,21 +33,21 @@
style="width: 100%" style="width: 100%"
tooltip-effect="dark" tooltip-effect="dark"
> >
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="日期" width="180"> <el-table-column label="日期" width="180">
<template slot-scope="scope">{{scope.row.CreatedAt|formatDate}}</template> <template slot-scope="scope">{{scope.row.CreatedAt|formatDate}}</template>
</el-table-column> </el-table-column>
<el-table-column label="字典名(中)" prop="name" width="120"></el-table-column> <el-table-column label="字典名(中)" prop="name" width="120"></el-table-column>
<el-table-column label="字典名(英)" prop="type" width="120"></el-table-column> <el-table-column label="字典名(英)" prop="type" width="120"></el-table-column>
<el-table-column label="状态" prop="status" width="120"> <el-table-column label="状态" prop="status" width="120">
<template slot-scope="scope">{{scope.row.status|formatBoolean}}</template> <template slot-scope="scope">{{scope.row.status|formatBoolean}}</template>
</el-table-column> </el-table-column>
<el-table-column label="描述" prop="desc" width="280"></el-table-column> <el-table-column label="描述" prop="desc" width="280"></el-table-column>
<el-table-column label="按钮组"> <el-table-column label="按钮组">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="toDetile(scope.row)" size="small" type="success">详情</el-button> <el-button @click="toDetile(scope.row)" size="small" type="success">详情</el-button>
...@@ -85,20 +77,30 @@ ...@@ -85,20 +77,30 @@
<el-dialog :before-close="closeDialog" :visible.sync="dialogFormVisible" title="弹窗操作"> <el-dialog :before-close="closeDialog" :visible.sync="dialogFormVisible" title="弹窗操作">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="110px"> <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="110px">
<el-form-item label="字典名(中)" prop="name"> <el-form-item label="字典名(中)" prop="name">
<el-input v-model="formData.name" placeholder="请输入字典名(中)" clearable :style="{width: '100%'}"></el-input> <el-input
</el-form-item> v-model="formData.name"
<el-form-item label="字典名(英)" prop="type"> placeholder="请输入字典名(中)"
<el-input v-model="formData.type" placeholder="请输入字典名(英)" clearable :style="{width: '100%'}"></el-input> clearable
</el-form-item> :style="{width: '100%'}"
<el-form-item label="状态" prop="status" required> ></el-input>
<el-switch v-model="formData.status" active-text="开启" inactive-text="停用"></el-switch> </el-form-item>
</el-form-item> <el-form-item label="字典名(英)" prop="type">
<el-form-item label="描述" prop="desc"> <el-input
<el-input v-model="formData.desc" placeholder="请输入描述" clearable :style="{width: '100%'}"></el-input> v-model="formData.type"
</el-form-item> placeholder="请输入字典名(英)"
</el-form> clearable
:style="{width: '100%'}"
></el-input>
</el-form-item>
<el-form-item label="状态" prop="status" required>
<el-switch v-model="formData.status" active-text="开启" inactive-text="停用"></el-switch>
</el-form-item>
<el-form-item label="描述" prop="desc">
<el-input v-model="formData.desc" placeholder="请输入描述" clearable :style="{width: '100%'}"></el-input>
</el-form-item>
</el-form>
<div class="dialog-footer" slot="footer"> <div class="dialog-footer" slot="footer">
<el-button @click="closeDialog">取 消</el-button> <el-button @click="closeDialog">取 消</el-button>
<el-button @click="enterDialog" type="primary">确 定</el-button> <el-button @click="enterDialog" type="primary">确 定</el-button>
...@@ -111,12 +113,12 @@ ...@@ -111,12 +113,12 @@
<script> <script>
import { import {
createSysDictionary, createSysDictionary,
deleteSysDictionary, deleteSysDictionary,
updateSysDictionary, updateSysDictionary,
findSysDictionary, findSysDictionary,
getSysDictionaryList getSysDictionaryList
} from "@/api/sysDictionary"; // 此处请自行替换地址 } from "@/api/sysDictionary"; // 此处请自行替换地址
import { formatTimeToStr } from "@/utils/date"; import { formatTimeToStr } from "@/utils/date";
import infoList from "@/mixins/infoList"; import infoList from "@/mixins/infoList";
export default { export default {
...@@ -129,25 +131,34 @@ export default { ...@@ -129,25 +131,34 @@ export default {
visible: false, visible: false,
type: "", type: "",
formData: { formData: {
name:null,type:null,status:true,desc:null name: null,
type: null,
status: true,
desc: null
}, },
rules: { rules: {
name: [{ name: [
required: true, {
message: '请输入字典名(中)', required: true,
trigger: 'blur' message: "请输入字典名(中)",
}], trigger: "blur"
type: [{ }
required: true, ],
message: '请输入字典名(英)', type: [
trigger: 'blur' {
}], required: true,
desc: [{ message: "请输入字典名(英)",
required: true, trigger: "blur"
message: '请输入描述', }
trigger: 'blur' ],
}], desc: [
}, {
required: true,
message: "请输入描述",
trigger: "blur"
}
]
}
}; };
}, },
filters: { filters: {
...@@ -161,30 +172,30 @@ export default { ...@@ -161,30 +172,30 @@ export default {
}, },
formatBoolean: function(bool) { formatBoolean: function(bool) {
if (bool != null) { if (bool != null) {
return bool ? "" :""; return bool ? "" : "";
} else { } else {
return ""; return "";
} }
} }
}, },
methods: { methods: {
toDetile(row){ toDetile(row) {
this.$router.push({ this.$router.push({
name:"dictionaryDetail", name: "dictionaryDetail",
params:{ params: {
id:row.ID id: row.ID
} }
}) });
}, },
//条件搜索前端看此方法 //条件搜索前端看此方法
onSubmit() { onSubmit() {
this.page = 1 this.page = 1;
this.pageSize = 10 this.pageSize = 10;
if (this.searchInfo.status==""){ if (this.searchInfo.status == "") {
this.searchInfo.status=null this.searchInfo.status = null;
} }
this.getTableData() this.getTableData();
}, },
async updateSysDictionary(row) { async updateSysDictionary(row) {
const res = await findSysDictionary({ ID: row.ID }); const res = await findSysDictionary({ ID: row.ID });
this.type = "update"; this.type = "update";
...@@ -196,10 +207,10 @@ export default { ...@@ -196,10 +207,10 @@ export default {
closeDialog() { closeDialog() {
this.dialogFormVisible = false; this.dialogFormVisible = false;
this.formData = { this.formData = {
name:null, name: null,
type:null, type: null,
status:true, status: true,
desc:null, desc: null
}; };
}, },
async deleteSysDictionary(row) { async deleteSysDictionary(row) {
...@@ -210,12 +221,15 @@ export default { ...@@ -210,12 +221,15 @@ export default {
type: "success", type: "success",
message: "删除成功" message: "删除成功"
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}, },
async enterDialog() { async enterDialog() {
this.$refs['elForm'].validate(async valid => { this.$refs["elForm"].validate(async valid => {
if (!valid) return if (!valid) return;
let res; let res;
switch (this.type) { switch (this.type) {
case "create": case "create":
...@@ -228,12 +242,11 @@ export default { ...@@ -228,12 +242,11 @@ export default {
res = await createSysDictionary(this.formData); res = await createSysDictionary(this.formData);
break; break;
} }
if (res.code == 0) { if (res.code == 0) {
this.closeDialog(); this.closeDialog();
this.getTableData(); this.getTableData();
} }
}) });
}, },
openDialog() { openDialog() {
this.type = "create"; this.type = "create";
......
...@@ -210,13 +210,16 @@ export default { ...@@ -210,13 +210,16 @@ export default {
type: "success", type: "success",
message: "删除成功" message: "删除成功"
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}, },
async enterDialog() { async enterDialog() {
this.formData.sysDictionaryID = Number(this.$route.params.id) this.formData.sysDictionaryID = Number(this.$route.params.id);
this.$refs['elForm'].validate(async valid => { this.$refs["elForm"].validate(async valid => {
if (!valid) return if (!valid) return;
let res; let res;
switch (this.type) { switch (this.type) {
case "create": case "create":
...@@ -231,14 +234,13 @@ export default { ...@@ -231,14 +234,13 @@ export default {
} }
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type:"success", type: "success",
message:"创建/更改成功" message: "创建/更改成功"
}) });
this.closeDialog(); this.closeDialog();
this.getTableData(); this.getTableData();
} }
}) });
}, },
openDialog() { openDialog() {
this.type = "create"; this.type = "create";
...@@ -246,7 +248,7 @@ export default { ...@@ -246,7 +248,7 @@ export default {
} }
}, },
created() { created() {
this.searchInfo.sysDictionaryID = this.$route.params.id this.searchInfo.sysDictionaryID = this.$route.params.id;
this.getTableData(); this.getTableData();
} }
}; };
......
...@@ -231,8 +231,8 @@ export default { ...@@ -231,8 +231,8 @@ export default {
}, },
methods: { methods: {
addParameter(form) { addParameter(form) {
if (!form.parameters){ if (!form.parameters) {
this.$set(form,"parameters",[]) this.$set(form, "parameters", []);
} }
form.parameters.push({ form.parameters.push({
type: "query", type: "query",
...@@ -316,6 +316,9 @@ export default { ...@@ -316,6 +316,9 @@ export default {
type: "success", type: "success",
message: "删除成功!" message: "删除成功!"
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}) })
......
...@@ -112,19 +112,19 @@ import { ...@@ -112,19 +112,19 @@ import {
deleteSysOperationRecord, deleteSysOperationRecord,
getSysOperationRecordList, getSysOperationRecordList,
deleteSysOperationRecordByIds deleteSysOperationRecordByIds
} from '@/api/sysOperationRecord' // 此处请自行替换地址 } from "@/api/sysOperationRecord"; // 此处请自行替换地址
import { formatTimeToStr } from '@/utils/date' import { formatTimeToStr } from "@/utils/date";
import infoList from '@/mixins/infoList' import infoList from "@/mixins/infoList";
export default { export default {
name: 'SysOperationRecord', name: "SysOperationRecord",
mixins: [infoList], mixins: [infoList],
data() { data() {
return { return {
listApi: getSysOperationRecordList, listApi: getSysOperationRecordList,
dialogFormVisible: false, dialogFormVisible: false,
visible: false, visible: false,
type: '', type: "",
deleteVisible: false, deleteVisible: false,
multipleSelection: [], multipleSelection: [],
formData: { formData: {
...@@ -137,74 +137,80 @@ export default { ...@@ -137,74 +137,80 @@ export default {
error_message: null, error_message: null,
user_id: null user_id: null
} }
} };
}, },
filters: { filters: {
formatDate: function(time) { formatDate: function(time) {
if (time != null && time != '') { if (time != null && time != "") {
var date = new Date(time) var date = new Date(time);
return formatTimeToStr(date, 'yyyy-MM-dd hh:mm:ss') return formatTimeToStr(date, "yyyy-MM-dd hh:mm:ss");
} else { } else {
return '' return "";
} }
}, },
formatBoolean: function(bool) { formatBoolean: function(bool) {
if (bool != null) { if (bool != null) {
return bool ? '' : '' return bool ? "" : "";
} else { } else {
return '' return "";
} }
} }
}, },
methods: { methods: {
//条件搜索前端看此方法 //条件搜索前端看此方法
onSubmit() { onSubmit() {
this.page = 1 this.page = 1;
this.pageSize = 10 this.pageSize = 10;
this.getTableData() this.getTableData();
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.multipleSelection = val this.multipleSelection = val;
}, },
async onDelete() { async onDelete() {
const ids = [] const ids = [];
this.multipleSelection && this.multipleSelection &&
this.multipleSelection.map(item => { this.multipleSelection.map(item => {
ids.push(item.ID) ids.push(item.ID);
}) });
const res = await deleteSysOperationRecordByIds({ ids }) const res = await deleteSysOperationRecordByIds({ ids });
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: 'success', type: "success",
message: '删除成功' message: "删除成功"
}) });
this.deleteVisible = false if (this.tableData.length == ids.length) {
this.getTableData() this.page--;
}
this.deleteVisible = false;
this.getTableData();
} }
}, },
async deleteSysOperationRecord(row) { async deleteSysOperationRecord(row) {
this.visible = false this.visible = false;
const res = await deleteSysOperationRecord({ ID: row.ID }) const res = await deleteSysOperationRecord({ ID: row.ID });
if (res.code == 0) { if (res.code == 0) {
this.$message({ this.$message({
type: 'success', type: "success",
message: '删除成功' message: "删除成功"
}) });
this.getTableData() if (this.tableData.length == 1) {
this.page--;
}
this.getTableData();
} }
}, },
fmtBody(value){ fmtBody(value) {
try{ try {
return JSON.parse(value) return JSON.parse(value);
}catch (err){ } catch (err) {
return value return value;
} }
} }
}, },
created() { created() {
this.getTableData() this.getTableData();
} }
} };
</script> </script>
<style lang="scss"> <style lang="scss">
......
...@@ -56,9 +56,19 @@ ...@@ -56,9 +56,19 @@
<el-table-column label="按钮组"> <el-table-column label="按钮组">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button class="table-button" @click="useWorkflowProcess(scope.row)" size="success" >启动</el-button> <el-button class="table-button" @click="useWorkflowProcess(scope.row)" size="success">启动</el-button>
<el-button class="table-button" @click="updateWorkflowProcess(scope.row)" size="small" type="primary">变更</el-button> <el-button
<el-button class="table-button" @click="viewWorkflowProcess(scope.row)" size="small" type="warning">查看</el-button> class="table-button"
@click="updateWorkflowProcess(scope.row)"
size="small"
type="primary"
>变更</el-button>
<el-button
class="table-button"
@click="viewWorkflowProcess(scope.row)"
size="small"
type="warning"
>查看</el-button>
<el-popover placement="top" width="160" v-model="scope.row.visible"> <el-popover placement="top" width="160" v-model="scope.row.visible">
<p>确定要删除吗?</p> <p>确定要删除吗?</p>
<div style="text-align: right; margin: 0"> <div style="text-align: right; margin: 0">
...@@ -147,6 +157,9 @@ export default { ...@@ -147,6 +157,9 @@ export default {
type: "success", type: "success",
message: "删除成功" message: "删除成功"
}); });
if (this.tableData.length == ids.length) {
this.page--;
}
this.deleteVisible = false; this.deleteVisible = false;
this.getTableData(); this.getTableData();
} }
...@@ -160,7 +173,7 @@ export default { ...@@ -160,7 +173,7 @@ export default {
} }
}); });
}, },
async useWorkflowProcess(row){ async useWorkflowProcess(row) {
this.$router.push({ this.$router.push({
name: "workflowUse", name: "workflowUse",
query: { query: {
...@@ -185,6 +198,9 @@ export default { ...@@ -185,6 +198,9 @@ export default {
type: "success", type: "success",
message: "删除成功" message: "删除成功"
}); });
if (this.tableData.length == 1) {
this.page--;
}
this.getTableData(); this.getTableData();
} }
}, },
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册