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

View File

@ -211,7 +211,7 @@ namespace ZR.CodeGenerator
var tpl = FileHelper.ReadJtTemplate(fileName); var tpl = FileHelper.ReadJtTemplate(fileName);
var result = tpl.Render(); 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); //Console.WriteLine(result);
generateDto.GenCodes.Add(new GenCode(16, "vue3.vue", fullPath, 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 tpl = FileHelper.ReadJtTemplate("TplVueApi.txt");
var result = tpl.Render(); 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)); 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> /// <summary>

View File

@ -12,6 +12,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="JinianNet.JNTemplate" Version="2.2.5" /> <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> </ItemGroup>
</Project> </Project>