修改vue3代码生成

This commit is contained in:
不做码农 2022-04-24 19:17:19 +08:00
parent c6d59c7390
commit 3e64343337
3 changed files with 205 additions and 248 deletions

View File

@ -185,7 +185,7 @@ $elseif(column.HtmlType == "datetime")
$elseif(column.HtmlType == "imageUpload")
<el-col :lg="24">
<el-form-item label="${labelName}" prop="${columnName}">
<UploadImage v-model="form.${columnName}" column="${columnName}" @success="handleUploadSuccess" />
<UploadImage v-model="form.${columnName}" :data="{ uploadType: 1 }" />
</el-form-item>
</el-col>
$elseif(column.HtmlType == "fileUpload")
@ -253,299 +253,253 @@ $end
</template>
<script>
import {
list${genTable.BusinessName},
add${genTable.BusinessName},
del${genTable.BusinessName},
update${genTable.BusinessName},
get${genTable.BusinessName},
<script setup name="${genTable.BusinessName.ToLower()}">
import { list${genTable.BusinessName}, add${genTable.BusinessName}, del${genTable.BusinessName}, update${genTable.BusinessName}, get${genTable.BusinessName},
$if(replaceDto.ShowBtnExport)
export${genTable.BusinessName},
$end
$if(showCustomInput)
changeSort
$end
} from '@/api/${tool.FirstLowerCase(genTable.ModuleName)}/${tool.FirstLowerCase(genTable.BusinessName)}.js';
} from '@/api/${tool.FirstLowerCase(genTable.ModuleName)}/${genTable.BusinessName.ToLower()}.js'
import { reactive, ref, toRefs, getCurrentInstance } from "vue";
export default {
name: "${genTable.BusinessName.ToLower()}",
setup() {
const { proxy } = getCurrentInstance();
// 选中${replaceDto.FistLowerPk}数组数组
const ids = ref([]);
// 非单选禁用
const single = ref(true);
// 非多个禁用
const multiple = ref(true);
// 遮罩层
const loading = ref(false);
// 显示搜索条件
const showSearch = ref(true);
// 查询参数
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
sort: undefined,
sortType: undefined,
const { proxy } = getCurrentInstance()
// 选中${replaceDto.FistLowerPk}数组数组
const ids = ref([])
// 非单选禁用
const single = ref(true)
// 非多个禁用
const multiple = ref(true)
// 遮罩层
const loading = ref(false)
// 显示搜索条件
const showSearch = ref(true)
// 查询参数
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
sort: undefined,
sortType: undefined,
$foreach(item in genTable.Columns)
$if(item.IsQuery == true)
${item.CsharpFieldFl}: undefined,
${item.CsharpFieldFl}: undefined,
$end
$end
});
// 弹出层标题
const title = ref("");
// 操作类型 1、add 2、edit
const opertype = ref(0);
// 是否显示弹出层
const open = ref(false);
// 表单参数
const data = reactive({
form: {},
});
const { form } = toRefs(data);
// 总记录数
const total = ref(0);
const dataList = ref([]);
const queryRef = ref(null);
const formRef = ref(null);
})
// 弹出层标题
const title = ref("")
// 操作类型 1、add 2、edit
const opertype = ref(0)
// 是否显示弹出层
const open = ref(false)
// 表单参数
const state = reactive({
form: {},
rules: {
$foreach(column in genTable.Columns)
$if(column.IsRequired && column.IsIncrement == false)
${column.CsharpFieldFl}: [
{ required: true, message: "${column.ColumnComment}不能为空", trigger: $if(column.htmlType == "select")"change"$else"blur"$end
$if(column.CsharpType == "int" || column.CsharpType == "long"), type: "number"$end }
],
$end
$end
}
})
const { form, rules } = toRefs(state)
// 总记录数
const total = ref(0)
const dataList = ref([])
const queryRef = ref()
const formRef = ref()
$foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox"))
// ${item.ColumnComment}选项列表 格式 eg:{ dictLabel: '标签', dictValue: '0'}
const ${item.CsharpFieldFl}Options = ref([]);
// ${item.ColumnComment}选项列表 格式 eg:{ dictLabel: '标签', dictValue: '0'}
const ${item.CsharpFieldFl}Options = ref([])
$elseif(item.HtmlType == "datetime" && item.IsQuery == true)
//${item.ColumnComment}时间范围
const dateRange${item.CsharpField} = ref([]);
// ${item.ColumnComment}时间范围
const dateRange${item.CsharpField} = ref([])
$elseif(item.HtmlType == "customInput")
const editIndex = ref(-1);
const editIndex = ref(-1)
$end
$end
$set(index = 0)
var dictParams = [
var dictParams = [
$foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox") && item.DictType != "")
{ dictType: "${item.DictType}", columnName: "${item.CsharpFieldFl}Options" },
{ dictType: "${item.DictType}", columnName: "${item.CsharpFieldFl}Options" },
$set(index = index + 1)
$end
$end
];
]
$if(index > 0)
proxy.getDicts(dictParams).then((response) => {
response.data.forEach((element) => {
proxy[element.columnName] = element.list;
});
});
proxy.getDicts(dictParams).then((response) => {
response.data.forEach((element) => {
proxy[element.columnName] = element.list
})
})
$end
// 表单规则校验
const rules = reactive({
$foreach(column in genTable.Columns)
$if(column.IsRequired && column.IsIncrement == false)
${column.CsharpFieldFl}: [
{ required: true, message: "${column.ColumnComment}不能为空", trigger: $if(column.htmlType == "select")"change"$else"blur"$end
$if(column.CsharpType == "int" || column.CsharpType == "long"), type: "number"$end }
],
$end
$end
});
function getList(){
function getList(){
$foreach(item in genTable.Columns)
$if(item.HtmlType == "datetime" && item.IsQuery == true)
proxy.addDateRange(queryParams, proxy.dateRange${item.CsharpField}, '${item.CsharpField}');
proxy.addDateRange(queryParams, proxy.dateRange${item.CsharpField}, '${item.CsharpField}');
$end
$end
loading.value = true;
list${genTable.BusinessName}(queryParams).then(res => {
if (res.code == 200) {
dataList.value = res.data.result;
total.value = res.data.totalNum;
loading.value = false;
}
})
}
function cancel(){
open.value = false;
reset();
}
// 重置表单
function reset() {
proxy.resetForm("formRef");
loading.value = true
list${genTable.BusinessName}(queryParams).then(res => {
if (res.code == 200) {
dataList.value = res.data.result
total.value = res.data.totalNum
loading.value = false
}
})
}
// 查询
function handleQuery() {
queryParams.pageNum = 1;
getList();
}
// 添加
function handleAdd() {
reset();
open.value = true;
title.value = '添加';
opertype.value = 1;
}
// 删除按钮操作
function handleDelete(row) {
const Ids = row.${replaceDto.FistLowerPk} || ids.value;
// 关闭dialog
function cancel(){
open.value = false
reset()
}
proxy.${confirm}confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
.then(function () {
//return del${genTable.BusinessName}(Ids);
})
.then(() => {
handleQuery();
proxy.${modal}modal.msgSuccess("删除成功");
})
.catch(() => {});
}
// 修改按钮操作
function handleUpdate(row) {
reset();
const id = row.${replaceDto.FistLowerPk} || ids.value;
get${genTable.BusinessName}(id).then((res) => {
const { code, data } = res;
if (code == 200) {
open.value = true;
title.value = "修改数据";
opertype.value = 2;
// 重置表单
function reset() {
proxy.resetForm("formRef")
}
form.value = {
...data,
// 查询
function handleQuery() {
queryParams.pageNum = 1
getList()
}
// 添加
function handleAdd() {
reset();
open.value = true
title.value = '添加'
opertype.value = 1
}
// 删除按钮操作
function handleDelete(row) {
const Ids = row.${replaceDto.FistLowerPk} || ids.value
proxy.${confirm}confirm('是否确认删除参数编号为"' + Ids + '"的数据项?')
.then(function () {
return del${genTable.BusinessName}(Ids)
})
.then(() => {
handleQuery()
proxy.${modal}modal.msgSuccess("删除成功")
})
.catch(() => {})
}
// 修改按钮操作
function handleUpdate(row) {
reset()
const id = row.${replaceDto.FistLowerPk} || ids.value
get${genTable.BusinessName}(id).then((res) => {
const { code, data } = res
if (code == 200) {
open.value = true
title.value = "修改数据"
opertype.value = 2
form.value = {
...data,
$foreach(item in genTable.Columns)
$if(item.HtmlType == "checkbox")
${item.CsharpFieldFl}Checked: data.${item.CsharpFieldFl} ? data.${item.CsharpFieldFl}.split(',') : [],
${item.CsharpFieldFl}Checked: data.${item.CsharpFieldFl} ? data.${item.CsharpFieldFl}.split(',') : [],
$end
$end
};
}
});
}
}
})
}
// 表单提交
function submitForm() {
proxy.${refs}refs["formRef"].validate((valid) => {
if (valid) {
if (form.value.${replaceDto.FistLowerPk} != undefined && opertype.value === 2) {
update${genTable.BusinessName}(form.value)
.then((res) => {
proxy.${modal}modal.msgSuccess("修改成功");
open.value = false;
getList();
})
.catch((err) => {
//TODO 错误逻辑
});
} else {
add${genTable.BusinessName}(form.value)
.then((res) => {
proxy.${modal}modal.msgSuccess("新增成功");
open.value = false;
getList();
})
.catch((err) => {
//TODO 错误逻辑
});
}
}
});
// 表单提交
function submitForm() {
proxy.${refs}refs["formRef"].validate((valid) => {
if (valid) {
if (form.value.${replaceDto.FistLowerPk} != undefined && opertype.value === 2) {
update${genTable.BusinessName}(form.value).then((res) => {
proxy.${modal}modal.msgSuccess("修改成功")
open.value = false
getList()
})
.catch(() => {})
} else {
add${genTable.BusinessName}(form.value).then((res) => {
proxy.${modal}modal.msgSuccess("新增成功")
open.value = false
getList()
})
.catch((err) => {
//TODO 错误逻辑
})
}
}
// 重置查询操作
function resetQuery(){
})
}
// 重置查询操作
function resetQuery(){
$foreach(item in genTable.Columns)
$if(item.HtmlType == "datetime" && item.IsQuery == true)
//${item.ColumnComment}时间范围
dateRange${item.CsharpField}.value = [];
// ${item.ColumnComment}时间范围
dateRange${item.CsharpField}.value = []
$end
$end
proxy.resetForm("queryRef");
handleQuery();
}
proxy.resetForm("queryRef")
handleQuery()
}
$if(replaceDto.ShowBtnExport)
// 导出按钮操作
function handleExport() {
proxy.${confirm}confirm("是否确认导出所有${genTable.functionName}数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return export${genTable.BusinessName}(queryParams);
})
.then((response) => {
proxy.download(response.data.path);
});
}
$end
// 多选框选中数据
function handleSelectionChange(selection) {
ids.value = selection.map((item) => item.${replaceDto.FistLowerPk});
single.value = selection.length != 1
multiple.value = !selection.length;
}
// 自定义排序
function sortChange(column) {
if (column.prop == null || column.order == null) {
queryParams.sort = undefined;
queryParams.sortType = undefined;
} else {
queryParams.sort = column.prop;
queryParams.sortType = column.order;
}
handleQuery();
}
$if(replaceDto.UploadFile == 1)
//图片上传成功方法
function handleUploadSuccess(column, filelist) {
form[column] = filelist;
}
// 导出按钮操作
function handleExport() {
proxy
.${confirm}confirm("是否确认导出所有${genTable.functionName}数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return export${genTable.BusinessName}(queryParams)
})
.then((response) => {
proxy.download(response.data.path)
})
}
$end
return {
single,
multiple,
loading,
showSearch,
queryParams,
total,
rules,
title,
opertype,
open,
form,
dataList,
$foreach(item in genTable.Columns)
$if((item.HtmlType == "radio" || item.HtmlType == "select" || item.HtmlType == "checkbox"))
${item.CsharpFieldFl}Options,
$elseif(item.HtmlType == "datetime" && item.IsQuery == true)
dateRange${item.CsharpField},
$elseif(item.HtmlType == "customInput")
editIndex,
$end
$end
handleQuery,
handleAdd,
submitForm,
$if(replaceDto.ShowBtnExport)
handleExport,
$end
resetQuery,
handleDelete,
handleUpdate,
reset,
cancel,
queryRef,
formRef,
sortChange,
getList,
handleSelectionChange,
// 多选框选中数据
function handleSelectionChange(selection) {
ids.value = selection.map((item) => item.${replaceDto.FistLowerPk});
single.value = selection.length != 1
multiple.value = !selection.length;
}
// 自定义排序
function sortChange(column) {
if (column.prop == null || column.order == null) {
queryParams.sort = undefined
queryParams.sortType = undefined
} else {
queryParams.sort = column.prop
queryParams.sortType = column.order
}
handleQuery()
}
$if(replaceDto.UploadFile == 1)
handleUploadSuccess,
// 图片上传成功方法
function handleUploadSuccess(column, filelist) {
form.value[column] = filelist;
}
$end
};
},
};
handleQuery()
</script>

View File

@ -211,7 +211,7 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate(fileName);
var result = tpl.Render();
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue3", "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{generateDto.GenTable.BusinessName.FirstUpperCase()}.vue");
var fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZRAdmin-vue", "src", "views", generateDto.GenTable.ModuleName.FirstLowerCase(), $"{generateDto.GenTable.BusinessName.FirstUpperCase()}.vue");
//Console.WriteLine(result);
generateDto.GenCodes.Add(new GenCode(16, "vue3.vue", fullPath, result));
}
@ -226,8 +226,11 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate("TplVueApi.txt");
var result = tpl.Render();
string fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "api", generateDto.GenTable.ModuleName.FirstLowerCase(), generateDto.GenTable.BusinessName.FirstLowerCase() + ".js");
string fullPath = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZR.Vue", "src", "api", generateDto.GenTable.ModuleName.FirstLowerCase(), generateDto.GenTable.BusinessName.FirstUpperCase() + ".js");
generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPath, result));
string fullPathV3 = generateDto.IsPreview ? string.Empty : Path.Combine(generateDto.GenCodePath, "ZRAdmin-vue", "src", "api", generateDto.GenTable.ModuleName.FirstLowerCase(), generateDto.GenTable.BusinessName.ToLower() + ".js");
generateDto.GenCodes.Add(new GenCode(7, "api.js", fullPathV3, result));
}
/// <summary>

View File

@ -12,6 +12,6 @@
<ItemGroup>
<PackageReference Include="JinianNet.JNTemplate" Version="2.2.5" />
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.6.6" />
<PackageReference Include="SqlSugarCoreNoDrive" Version="5.0.7.6" />
</ItemGroup>
</Project>