ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index-tree.vue.vm
@@ -1,6 +1,6 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"> #foreach($column in $columns) #if($column.query) #set($dictType=$column.dictType) @@ -17,14 +17,14 @@ v-model="queryParams.${column.javaField}" placeholder="请è¾å ¥${comment}" clearable @keyup.enter.native="handleQuery" @keyup.enter="handleQuery" /> </el-form-item> #elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType) <el-form-item label="${comment}" prop="${column.javaField}"> <el-select v-model="queryParams.${column.javaField}" placeholder="è¯·éæ©${comment}" clearable> <el-option v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" :label="dict.label" :value="dict.value" @@ -42,29 +42,28 @@ <el-date-picker clearable v-model="queryParams.${column.javaField}" type="date" value-format="yyyy-MM-dd" value-format="YYYY-MM-DD" placeholder="éæ©${comment}"> </el-date-picker> </el-form-item> #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") <el-form-item label="${comment}"> <el-form-item label="${comment}" style="width: 308px"> <el-date-picker v-model="daterange${AttrName}" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="daterange" range-separator="-" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" :default-time="['00:00:00', '23:59:59']" :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" ></el-date-picker> </el-form-item> #end #end #end <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">éç½®</el-button> <el-button type="primary" icon="Search" @click="handleQuery">æç´¢</el-button> <el-button icon="Refresh" @click="resetQuery">éç½®</el-button> </el-form-item> </el-form> @@ -73,8 +72,7 @@ <el-button type="primary" plain icon="el-icon-plus" size="mini" icon="Plus" @click="handleAdd" v-hasPermi="['${moduleName}:${businessName}:add']" >æ°å¢</el-button> @@ -83,12 +81,11 @@ <el-button type="info" plain icon="el-icon-sort" size="mini" icon="Sort" @click="toggleExpandAll" >å±å¼/æå </el-button> </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> </el-row> <el-table @@ -110,7 +107,7 @@ #if($column.pk) #elseif($column.list && $column.htmlType == "datetime") <el-table-column label="${comment}" align="center" prop="${javaField}" width="180"> <template slot-scope="scope"> <template #default="scope"> <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span> </template> </el-table-column> @@ -122,11 +119,11 @@ </el-table-column> #elseif($column.list && $column.dictType && "" != $column.dictType) <el-table-column label="${comment}" align="center" prop="${javaField}"> <template slot-scope="scope"> <template #default="scope"> #if($column.htmlType == "checkbox") <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/> <dict-tag :options="${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/> #else <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField}"/> <dict-tag :options="${column.dictType}" :value="scope.row.${javaField}"/> #end </template> </el-table-column> @@ -139,35 +136,17 @@ #end #end <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']" >ä¿®æ¹</el-button> <el-button size="mini" type="text" icon="el-icon-plus" @click="handleAdd(scope.row)" v-hasPermi="['${moduleName}:${businessName}:add']" >æ°å¢</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']" >å é¤</el-button> </template> <template #default="scope"> <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']">ä¿®æ¹</el-button> <el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['${moduleName}:${businessName}:add']">æ°å¢</el-button> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']">å é¤</el-button> </template> </el-table-column> </el-table> <!-- æ·»å æä¿®æ¹${functionName}å¯¹è¯æ¡ --> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-dialog :title="title" v-model="open" width="500px" append-to-body> <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px"> #foreach($column in $columns) #set($field=$column.javaField) #if($column.insert && !$column.pk) @@ -180,7 +159,14 @@ #set($dictType=$column.dictType) #if("" != $treeParentCode && $column.javaField == $treeParentCode) <el-form-item label="${comment}" prop="${treeParentCode}"> <treeselect v-model="form.${treeParentCode}" :options="${businessName}Options" :normalizer="normalizer" placeholder="è¯·éæ©${comment}" /> <el-tree-select v-model="form.${treeParentCode}" :data="${businessName}Options" :props="{ value: '${treeCode}', label: '${treeName}', children: 'children' }" value-key="${treeCode}" placeholder="è¯·éæ©${comment}" check-strictly /> </el-form-item> #elseif($column.htmlType == "input") <el-form-item label="${comment}" prop="${field}"> @@ -202,7 +188,7 @@ <el-form-item label="${comment}" prop="${field}"> <el-select v-model="form.${field}" placeholder="è¯·éæ©${comment}"> <el-option v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" :label="dict.label" #if($column.javaType == "Integer" || $column.javaType == "Long") @@ -223,7 +209,7 @@ <el-form-item label="${comment}" prop="${field}"> <el-checkbox-group v-model="form.${field}"> <el-checkbox v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" :label="dict.value"> {{dict.label}} @@ -240,7 +226,7 @@ <el-form-item label="${comment}" prop="${field}"> <el-radio-group v-model="form.${field}"> <el-radio v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" #if($column.javaType == "Integer" || $column.javaType == "Long") :label="parseInt(dict.value)" @@ -261,7 +247,7 @@ <el-date-picker clearable v-model="form.${field}" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" placeholder="éæ©${comment}"> </el-date-picker> </el-form-item> @@ -273,66 +259,51 @@ #end #end </el-form> <div slot="footer" class="dialog-footer"> <el-button :loading="buttonLoading" type="primary" @click="submitForm">ç¡® å®</el-button> <el-button @click="cancel">å æ¶</el-button> </div> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="submitForm">ç¡® å®</el-button> <el-button @click="cancel">å æ¶</el-button> </div> </template> </el-dialog> </div> </template> <script> <script setup name="${BusinessName}"> import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}"; import Treeselect from "@riophae/vue-treeselect"; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { name: "${BusinessName}", const { proxy } = getCurrentInstance(); #if(${dicts} != '') dicts: [${dicts}], #set($dictsNoSymbol=$dicts.replace("'", "")) const { ${dictsNoSymbol} } = proxy.useDict(${dicts}); #end components: { Treeselect }, data() { return { // æé®loading buttonLoading: false, // é®ç½©å± loading: true, // æ¾ç¤ºæç´¢æ¡ä»¶ showSearch: true, // ${functionName}è¡¨æ ¼æ°æ® ${businessName}List: [], // ${functionName}æ é项 ${businessName}Options: [], // å¼¹åºå±æ é¢ title: "", // æ¯å¦æ¾ç¤ºå¼¹åºå± open: false, // æ¯å¦å±å¼ï¼é»è®¤å ¨é¨å±å¼ isExpandAll: true, // éæ°æ¸²æè¡¨æ ¼ç¶æ refreshTable: true, const ${businessName}List = ref([]); const ${businessName}Options = ref([]); const open = ref(false); const buttonLoading = ref(false); const loading = ref(true); const showSearch = ref(true); const title = ref(""); const isExpandAll = ref(true); const refreshTable = ref(true); #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) // $commentæ¶é´èå´ daterange${AttrName}: [], const daterange${AttrName} = ref([]); #end #end // æ¥è¯¢åæ° queryParams: { const data = reactive({ form: {}, queryParams: { #foreach ($column in $columns) #if($column.query) $column.javaField: undefined#if($foreach.count != $columns.size()),#end $column.javaField: undefined#if($foreach.count != $columns.size()),#end #end #end }, // 表ååæ° form: {}, // è¡¨åæ ¡éª rules: { }, rules: { #foreach ($column in $columns) #if($column.insert || $column.edit) #if($column.required) @@ -342,181 +313,178 @@ #else #set($comment=$column.columnComment) #end $column.javaField: [ { required: true, message: "$commentä¸è½ä¸ºç©º", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end } ]#if($foreach.count != $columns.size()),#end $column.javaField: [ { required: true, message: "$commentä¸è½ä¸ºç©º", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end } ]#if($foreach.count != $columns.size()),#end #end #end #end } }; }, created() { this.getList(); }, methods: { /** æ¥è¯¢${functionName}å表 */ getList() { this.loading = true; } }); const { queryParams, form, rules } = toRefs(data); /** æ¥è¯¢${functionName}å表 */ function getList() { loading.value = true; #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") this.queryParams.params = {}; queryParams.value.params = {}; #break #end #end #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) { this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0]; this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1]; } if (null != daterange${AttrName} && '' != daterange${AttrName}) { queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0]; queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1]; } #end #end list${BusinessName}(this.queryParams).then(response => { this.${businessName}List = this.handleTree(response.data, "${treeCode}", "${treeParentCode}"); this.loading = false; }); }, /** 转æ¢${functionName}æ°æ®ç»æ */ normalizer(node) { if (node.children && !node.children.length) { delete node.children; } return { id: node.${treeCode}, label: node.${treeName}, children: node.children }; }, /** æ¥è¯¢${functionName}䏿æ ç»æ */ getTreeselect() { list${BusinessName}().then(response => { this.${businessName}Options = []; const data = { ${treeCode}: 0, ${treeName}: '顶级èç¹', children: [] }; data.children = this.handleTree(response.data, "${treeCode}", "${treeParentCode}"); this.${businessName}Options.push(data); }); }, // åæ¶æé® cancel() { this.open = false; this.reset(); }, // 表åéç½® reset() { this.form = { list${BusinessName}(queryParams.value).then(response => { ${businessName}List.value = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}"); loading.value = false; }); } /** æ¥è¯¢${functionName}䏿æ ç»æ */ function getTreeselect() { list${BusinessName}().then(response => { ${businessName}Options.value = []; const data = { ${treeCode}: 0, ${treeName}: '顶级èç¹', children: [] }; data.children = proxy.handleTree(response.data, "${treeCode}", "${treeParentCode}"); ${businessName}Options.value.push(data); }); } // åæ¶æé® function cancel() { open.value = false; reset(); } // 表åéç½® function reset() { form.value = { #foreach ($column in $columns) #if($column.insert || $column.edit) #if($column.htmlType == "checkbox") $column.javaField: []#if($foreach.count != $columns.size()),#end $column.javaField: []#if($foreach.count != $columns.size()),#end #else $column.javaField: null#if($foreach.count != $columns.size()),#end $column.javaField: null#if($foreach.count != $columns.size()),#end #end #end #end }; this.resetForm("form"); }, /** æç´¢æé®æä½ */ handleQuery() { this.getList(); }, /** éç½®æé®æä½ */ resetQuery() { }; proxy.resetForm("${businessName}Ref"); } /** æç´¢æé®æä½ */ function handleQuery() { getList(); } /** éç½®æé®æä½ */ function resetQuery() { #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) this.daterange${AttrName} = []; daterange${AttrName}.value = []; #end #end this.resetForm("queryForm"); this.handleQuery(); }, /** æ°å¢æé®æä½ */ handleAdd(row) { this.reset(); this.getTreeselect(); if (row != null && row.${treeCode}) { this.form.${treeParentCode} = row.${treeCode}; } else { this.form.${treeParentCode} = 0; } this.open = true; this.title = "æ·»å ${functionName}"; }, /** å±å¼/æå æä½ */ toggleExpandAll() { this.refreshTable = false; this.isExpandAll = !this.isExpandAll; this.$nextTick(() => { this.refreshTable = true; }); }, /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.loading = true; this.reset(); this.getTreeselect(); if (row != null) { this.form.${treeParentCode} = row.${treeCode}; } get${BusinessName}(row.${pkColumn.javaField}).then(response => { this.loading = false; this.form = response.data; #foreach ($column in $columns) #if($column.htmlType == "checkbox") this.form.$column.javaField = this.form.${column.javaField}.split(","); #end #end this.open = true; this.title = "ä¿®æ¹${functionName}"; }); }, /** æäº¤æé® */ submitForm() { this.#[[$]]#refs["form"].validate(valid => { if (valid) { this.buttonLoading = true; #foreach ($column in $columns) #if($column.htmlType == "checkbox") this.form.$column.javaField = this.form.${column.javaField}.join(","); #end #end if (this.form.${pkColumn.javaField} != null) { update${BusinessName}(this.form).then(response => { this.#[[$modal]]#.msgSuccess("ä¿®æ¹æå"); this.open = false; this.getList(); }).finally(() => { this.buttonLoading = false; }); } else { add${BusinessName}(this.form).then(response => { this.#[[$modal]]#.msgSuccess("æ°å¢æå"); this.open = false; this.getList(); }).finally(() => { this.buttonLoading = false; }); } } }); }, /** å é¤æé®æä½ */ handleDelete(row) { this.#[[$modal]]#.confirm('æ¯å¦ç¡®è®¤å é¤${functionName}ç¼å·ä¸º"' + row.${pkColumn.javaField} + '"çæ°æ®é¡¹ï¼').then(() => { this.loading = true; return del${BusinessName}(row.${pkColumn.javaField}); }).then(() => { this.loading = false; this.getList(); this.#[[$modal]]#.msgSuccess("å 餿å"); }).catch(() => { }).finally(() => { this.loading = false; }); } proxy.resetForm("queryRef"); handleQuery(); } /** æ°å¢æé®æä½ */ function handleAdd(row) { reset(); getTreeselect(); if (row != null && row.${treeCode}) { form.value.${treeParentCode} = row.${treeCode}; } else { form.value.${treeParentCode} = 0; } }; open.value = true; title.value = "æ·»å ${functionName}"; } /** å±å¼/æå æä½ */ function toggleExpandAll() { refreshTable.value = false; isExpandAll.value = !isExpandAll.value; nextTick(() => { refreshTable.value = true; }); } /** ä¿®æ¹æé®æä½ */ async function handleUpdate(row) { loading.value = true; reset(); await getTreeselect(); if (row != null) { form.value.${treeParentCode} = row.${treeCode}; } get${BusinessName}(row.${pkColumn.javaField}).then(response => { loading.value = false; form.value = response.data; #foreach ($column in $columns) #if($column.htmlType == "checkbox") form.value.$column.javaField = form.value.${column.javaField}.split(","); #end #end open.value = true; title.value = "ä¿®æ¹${functionName}"; }); } /** æäº¤æé® */ function submitForm() { proxy.#[[$]]#refs["${businessName}Ref"].validate(valid => { if (valid) { buttonLoading.value = true; #foreach ($column in $columns) #if($column.htmlType == "checkbox") form.value.$column.javaField = form.value.${column.javaField}.join(","); #end #end if (form.value.${pkColumn.javaField} != null) { update${BusinessName}(form.value).then(response => { proxy.#[[$modal]]#.msgSuccess("ä¿®æ¹æå"); open.value = false; getList(); }).finally(() => { buttonLoading.value = false; }); } else { add${BusinessName}(form.value).then(response => { proxy.#[[$modal]]#.msgSuccess("æ°å¢æå"); open.value = false; getList(); }).finally(() => { buttonLoading.value = false; }); } } }); } /** å é¤æé®æä½ */ function handleDelete(row) { proxy.#[[$modal]]#.confirm('æ¯å¦ç¡®è®¤å é¤${functionName}ç¼å·ä¸º"' + row.${pkColumn.javaField} + '"çæ°æ®é¡¹ï¼').then(function() { loading.value = true; return del${BusinessName}(row.${pkColumn.javaField}); }).then(() => { loading.value = false; getList(); proxy.#[[$modal]]#.msgSuccess("å 餿å"); }).catch(() => { }).finally(() => { loading.value = false; }); } getList(); </script> ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/index.vue.vm
@@ -1,6 +1,6 @@ <template> <div class="app-container"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px"> #foreach($column in $columns) #if($column.query) #set($dictType=$column.dictType) @@ -17,14 +17,14 @@ v-model="queryParams.${column.javaField}" placeholder="请è¾å ¥${comment}" clearable @keyup.enter.native="handleQuery" @keyup.enter="handleQuery" /> </el-form-item> #elseif(($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType) <el-form-item label="${comment}" prop="${column.javaField}"> <el-select v-model="queryParams.${column.javaField}" placeholder="è¯·éæ©${comment}" clearable> <el-option v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" :label="dict.label" :value="dict.value" @@ -42,29 +42,28 @@ <el-date-picker clearable v-model="queryParams.${column.javaField}" type="date" value-format="yyyy-MM-dd" value-format="YYYY-MM-DD" placeholder="è¯·éæ©${comment}"> </el-date-picker> </el-form-item> #elseif($column.htmlType == "datetime" && $column.queryType == "BETWEEN") <el-form-item label="${comment}"> <el-form-item label="${comment}" style="width: 308px"> <el-date-picker v-model="daterange${AttrName}" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" type="daterange" range-separator="-" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" :default-time="['00:00:00', '23:59:59']" :default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]" ></el-date-picker> </el-form-item> #end #end #end <el-form-item> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">éç½®</el-button> <el-button type="primary" icon="Search" @click="handleQuery">æç´¢</el-button> <el-button icon="Refresh" @click="resetQuery">éç½®</el-button> </el-form-item> </el-form> @@ -73,8 +72,7 @@ <el-button type="primary" plain icon="el-icon-plus" size="mini" icon="Plus" @click="handleAdd" v-hasPermi="['${moduleName}:${businessName}:add']" >æ°å¢</el-button> @@ -83,8 +81,7 @@ <el-button type="success" plain icon="el-icon-edit" size="mini" icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['${moduleName}:${businessName}:edit']" @@ -94,8 +91,7 @@ <el-button type="danger" plain icon="el-icon-delete" size="mini" icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['${moduleName}:${businessName}:remove']" @@ -105,13 +101,12 @@ <el-button type="warning" plain icon="el-icon-download" size="mini" icon="Download" @click="handleExport" v-hasPermi="['${moduleName}:${businessName}:export']" >导åº</el-button> </el-col> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> </el-row> <el-table v-loading="loading" :data="${businessName}List" @selection-change="handleSelectionChange"> @@ -128,23 +123,23 @@ <el-table-column label="${comment}" align="center" prop="${javaField}" v-if="${column.list}"/> #elseif($column.list && $column.htmlType == "datetime") <el-table-column label="${comment}" align="center" prop="${javaField}" width="180"> <template slot-scope="scope"> <template #default="scope"> <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span> </template> </el-table-column> #elseif($column.list && $column.htmlType == "imageUpload") <el-table-column label="${comment}" align="center" prop="${javaField}" width="100"> <template slot-scope="scope"> <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/> </template> <template #default="scope"> <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/> </template> </el-table-column> #elseif($column.list && $column.dictType && "" != $column.dictType) <el-table-column label="${comment}" align="center" prop="${javaField}"> <template slot-scope="scope"> <template #default="scope"> #if($column.htmlType == "checkbox") <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/> <dict-tag :options="${column.dictType}" :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/> #else <dict-tag :options="dict.type.${column.dictType}" :value="scope.row.${javaField}"/> <dict-tag :options="${column.dictType}" :value="scope.row.${javaField}"/> #end </template> </el-table-column> @@ -153,36 +148,24 @@ #end #end <el-table-column label="æä½" align="center" class-name="small-padding fixed-width"> <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']" >ä¿®æ¹</el-button> <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']" >å é¤</el-button> </template> <template #default="scope"> <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['${moduleName}:${businessName}:edit']">ä¿®æ¹</el-button> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['${moduleName}:${businessName}:remove']">å é¤</el-button> </template> </el-table-column> </el-table> <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" /> <!-- æ·»å æä¿®æ¹${functionName}å¯¹è¯æ¡ --> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-dialog :title="title" v-model="open" width="500px" append-to-body> <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px"> #foreach($column in $columns) #set($field=$column.javaField) #if($column.insert && !$column.pk) @@ -213,7 +196,7 @@ <el-form-item label="${comment}" prop="${field}"> <el-select v-model="form.${field}" placeholder="è¯·éæ©${comment}"> <el-option v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" :label="dict.label" #if($column.javaType == "Integer" || $column.javaType == "Long") @@ -234,7 +217,7 @@ <el-form-item label="${comment}" prop="${field}"> <el-checkbox-group v-model="form.${field}"> <el-checkbox v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" :label="dict.value"> {{dict.label}} @@ -251,7 +234,7 @@ <el-form-item label="${comment}" prop="${field}"> <el-radio-group v-model="form.${field}"> <el-radio v-for="dict in dict.type.${dictType}" v-for="dict in ${dictType}" :key="dict.value" #if($column.javaType == "Integer" || $column.javaType == "Long") :label="parseInt(dict.value)" @@ -272,7 +255,7 @@ <el-date-picker clearable v-model="form.${field}" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" placeholder="è¯·éæ©${comment}"> </el-date-picker> </el-form-item> @@ -284,65 +267,54 @@ #end #end </el-form> <div slot="footer" class="dialog-footer"> <el-button :loading="buttonLoading" type="primary" @click="submitForm">ç¡® å®</el-button> <el-button @click="cancel">å æ¶</el-button> </div> <template #footer> <div class="dialog-footer"> <el-button :loading="buttonLoading" type="primary" @click="submitForm">ç¡® å®</el-button> <el-button @click="cancel">å æ¶</el-button> </div> </template> </el-dialog> </div> </template> <script> <script setup name="${BusinessName}"> import { list${BusinessName}, get${BusinessName}, del${BusinessName}, add${BusinessName}, update${BusinessName} } from "@/api/${moduleName}/${businessName}"; export default { name: "${BusinessName}", const { proxy } = getCurrentInstance(); #if(${dicts} != '') dicts: [${dicts}], #set($dictsNoSymbol=$dicts.replace("'", "")) const { ${dictsNoSymbol} } = proxy.useDict(${dicts}); #end data() { return { // æé®loading buttonLoading: false, // é®ç½©å± loading: true, // é䏿°ç» ids: [], // éå个ç¦ç¨ single: true, // éå¤ä¸ªç¦ç¨ multiple: true, // æ¾ç¤ºæç´¢æ¡ä»¶ showSearch: true, // æ»æ¡æ° total: 0, // ${functionName}è¡¨æ ¼æ°æ® ${businessName}List: [], // å¼¹åºå±æ é¢ title: "", // æ¯å¦æ¾ç¤ºå¼¹åºå± open: false, const ${businessName}List = ref([]); const open = ref(false); const buttonLoading = ref(false); const loading = ref(true); const showSearch = ref(true); const ids = ref([]); const single = ref(true); const multiple = ref(true); const total = ref(0); const title = ref(""); #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) // $commentæ¶é´èå´ daterange${AttrName}: [], const daterange${AttrName} = ref([]); #end #end // æ¥è¯¢åæ° queryParams: { pageNum: 1, pageSize: 10, const data = reactive({ form: {}, queryParams: { pageNum: 1, pageSize: 10, #foreach ($column in $columns) #if($column.query) $column.javaField: undefined#if($foreach.count != $columns.size()),#end $column.javaField: undefined#if($foreach.count != $columns.size()),#end #end #end }, // 表ååæ° form: {}, // è¡¨åæ ¡éª rules: { }, rules: { #foreach ($column in $columns) #if($column.insert || $column.edit) #if($column.required) @@ -352,159 +324,167 @@ #else #set($comment=$column.columnComment) #end $column.javaField: [ { required: true, message: "$commentä¸è½ä¸ºç©º", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end } ]#if($foreach.count != $columns.size()),#end $column.javaField: [ { required: true, message: "$commentä¸è½ä¸ºç©º", trigger: #if($column.htmlType == "select" || $column.htmlType == "radio")"change"#else"blur"#end } ]#if($foreach.count != $columns.size()),#end #end #end #end } }; }, created() { this.getList(); }, methods: { /** æ¥è¯¢${functionName}å表 */ getList() { this.loading = true; } }); const { queryParams, form, rules } = toRefs(data); /** æ¥è¯¢${functionName}å表 */ function getList() { loading.value = true; #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") this.queryParams.params = {}; queryParams.value.params = {}; #break #end #end #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) if (null != this.daterange${AttrName} && '' != this.daterange${AttrName}) { this.queryParams.params["begin${AttrName}"] = this.daterange${AttrName}[0]; this.queryParams.params["end${AttrName}"] = this.daterange${AttrName}[1]; } if (null != daterange${AttrName} && '' != daterange${AttrName}) { queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0]; queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1]; } #end #end list${BusinessName}(this.queryParams).then(response => { this.${businessName}List = response.rows; this.total = response.total; this.loading = false; }); }, // åæ¶æé® cancel() { this.open = false; this.reset(); }, // 表åéç½® reset() { this.form = { list${BusinessName}(queryParams.value).then(response => { ${businessName}List.value = response.rows; total.value = response.total; loading.value = false; }); } // åæ¶æé® function cancel() { open.value = false; reset(); } // 表åéç½® function reset() { form.value = { #foreach ($column in $columns) #if($column.insert || $column.edit) #if($column.htmlType == "checkbox") $column.javaField: []#if($foreach.count != $columns.size()),#end $column.javaField: []#if($foreach.count != $columns.size()),#end #else $column.javaField: undefined#if($foreach.count != $columns.size()),#end $column.javaField: null#if($foreach.count != $columns.size()),#end #end #end #end }; this.resetForm("form"); }, /** æç´¢æé®æä½ */ handleQuery() { this.queryParams.pageNum = 1; this.getList(); }, /** éç½®æé®æä½ */ resetQuery() { }; proxy.resetForm("${businessName}Ref"); } /** æç´¢æé®æä½ */ function handleQuery() { queryParams.value.pageNum = 1; getList(); } /** éç½®æé®æä½ */ function resetQuery() { #foreach ($column in $columns) #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN") #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)}) this.daterange${AttrName} = []; daterange${AttrName}.value = []; #end #end this.resetForm("queryForm"); this.handleQuery(); }, // å¤éæ¡é䏿°æ® handleSelectionChange(selection) { this.ids = selection.map(item => item.${pkColumn.javaField}) this.single = selection.length!==1 this.multiple = !selection.length }, /** æ°å¢æé®æä½ */ handleAdd() { this.reset(); this.open = true; this.title = "æ·»å ${functionName}"; }, /** ä¿®æ¹æé®æä½ */ handleUpdate(row) { this.loading = true; this.reset(); const ${pkColumn.javaField} = row.${pkColumn.javaField} || this.ids get${BusinessName}(${pkColumn.javaField}).then(response => { this.loading = false; this.form = response.data; proxy.resetForm("queryRef"); handleQuery(); } // å¤éæ¡é䏿°æ® function handleSelectionChange(selection) { ids.value = selection.map(item => item.${pkColumn.javaField}); single.value = selection.length != 1; multiple.value = !selection.length; } /** æ°å¢æé®æä½ */ function handleAdd() { reset(); open.value = true; title.value = "æ·»å ${functionName}"; } /** ä¿®æ¹æé®æä½ */ function handleUpdate(row) { loading.value = true reset(); const _${pkColumn.javaField} = row.${pkColumn.javaField} || ids.value get${BusinessName}(_${pkColumn.javaField}).then(response => { loading.value = false; form.value = response.data; #foreach ($column in $columns) #if($column.htmlType == "checkbox") this.form.$column.javaField = this.form.${column.javaField}.split(","); form.value.$column.javaField = form.value.${column.javaField}.split(","); #end #end this.open = true; this.title = "ä¿®æ¹${functionName}"; }); }, /** æäº¤æé® */ submitForm() { this.#[[$]]#refs["form"].validate(valid => { if (valid) { this.buttonLoading = true; open.value = true; title.value = "ä¿®æ¹${functionName}"; }); } /** æäº¤æé® */ function submitForm() { proxy.#[[$]]#refs["${businessName}Ref"].validate(valid => { if (valid) { buttonLoading.value = true; #foreach ($column in $columns) #if($column.htmlType == "checkbox") this.form.$column.javaField = this.form.${column.javaField}.join(","); form.value.$column.javaField = form.value.${column.javaField}.join(","); #end #end if (this.form.${pkColumn.javaField} != null) { update${BusinessName}(this.form).then(response => { this.#[[$modal]]#.msgSuccess("ä¿®æ¹æå"); this.open = false; this.getList(); }).finally(() => { this.buttonLoading = false; }); } else { add${BusinessName}(this.form).then(response => { this.#[[$modal]]#.msgSuccess("æ°å¢æå"); this.open = false; this.getList(); }).finally(() => { this.buttonLoading = false; }); } } }); }, /** å é¤æé®æä½ */ handleDelete(row) { const ${pkColumn.javaField}s = row.${pkColumn.javaField} || this.ids; this.#[[$modal]]#.confirm('æ¯å¦ç¡®è®¤å é¤${functionName}ç¼å·ä¸º"' + ${pkColumn.javaField}s + '"çæ°æ®é¡¹ï¼').then(() => { this.loading = true; return del${BusinessName}(${pkColumn.javaField}s); }).then(() => { this.loading = false; this.getList(); this.#[[$modal]]#.msgSuccess("å 餿å"); }).catch(() => { }).finally(() => { this.loading = false; }); }, /** å¯¼åºæé®æä½ */ handleExport() { this.download('${moduleName}/${businessName}/export', { ...this.queryParams }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`) if (form.value.${pkColumn.javaField} != null) { update${BusinessName}(form.value).then(response => { proxy.#[[$modal]]#.msgSuccess("ä¿®æ¹æå"); open.value = false; getList(); }).finally(() => { buttonLoading.value = false; }); } else { add${BusinessName}(form.value).then(response => { proxy.#[[$modal]]#.msgSuccess("æ°å¢æå"); open.value = false; getList(); }).finally(() => { buttonLoading.value = false; }); } } } }; }); } /** å é¤æé®æä½ */ function handleDelete(row) { const _${pkColumn.javaField}s = row.${pkColumn.javaField} || ids.value; proxy.#[[$modal]]#.confirm('æ¯å¦ç¡®è®¤å é¤${functionName}ç¼å·ä¸º"' + _${pkColumn.javaField}s + '"çæ°æ®é¡¹ï¼').then(function() { loading.value = true; return del${BusinessName}(_${pkColumn.javaField}s); }).then(() => { loading.value = true; getList(); proxy.#[[$modal]]#.msgSuccess("å 餿å"); }).catch(() => { }).finally(() => { loading.value = false; }); } /** å¯¼åºæé®æä½ */ function handleExport() { proxy.download('${moduleName}/${businessName}/export', { ...queryParams.value }, `${businessName}_#[[${new Date().getTime()}]]#.xlsx`) } getList(); </script> ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/v3/index-tree.vue.vm
ÎļþÒÑɾ³ý ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/v3/index.vue.vm
ÎļþÒÑɾ³ý ruoyi-modules/ruoyi-generator/src/main/resources/vm/vue/v3/readme.txt
ÎļþÒÑɾ³ý ruoyi-ui/.editorconfig
ÎļþÒÑɾ³ý ruoyi-ui/.env.development
ÎļþÒÑɾ³ý ruoyi-ui/.env.production
ÎļþÒÑɾ³ý ruoyi-ui/.eslintignore
ÎļþÒÑɾ³ý ruoyi-ui/.eslintrc.js
ÎļþÒÑɾ³ý ruoyi-ui/.gitignore
ÎļþÒÑɾ³ý ruoyi-ui/README.md
ÎļþÒÑɾ³ý ruoyi-ui/babel.config.js
ÎļþÒÑɾ³ý ruoyi-ui/bin/build.bat
ÎļþÒÑɾ³ý ruoyi-ui/bin/package.bat
ÎļþÒÑɾ³ý ruoyi-ui/bin/run-web.bat
ÎļþÒÑɾ³ý ruoyi-ui/build/index.js
ÎļþÒÑɾ³ý ruoyi-ui/package.json
ÎļþÒÑɾ³ý ruoyi-ui/public/favicon.icoBinary files differ
ruoyi-ui/public/html/ie.html
ÎļþÒÑɾ³ý ruoyi-ui/public/index.html
ÎļþÒÑɾ³ý ruoyi-ui/public/robots.txt
ÎļþÒÑɾ³ý ruoyi-ui/src/App.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/api/demo/demo.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/demo/tree.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/login.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/menu.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/monitor/cache.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/monitor/logininfor.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/monitor/online.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/monitor/operlog.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/config.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/dept.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/dict/data.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/dict/type.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/menu.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/notice.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/oss.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/ossConfig.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/post.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/role.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/tenant.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/tenantPackage.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/system/user.js
ÎļþÒÑɾ³ý ruoyi-ui/src/api/tool/gen.js
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/401_images/401.gifBinary files differ
ruoyi-ui/src/assets/404_images/404.pngBinary files differ
ruoyi-ui/src/assets/404_images/404_cloud.pngBinary files differ
ruoyi-ui/src/assets/icons/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/404.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/bug.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/build.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/button.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/cascader.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/chart.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/checkbox.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/clipboard.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/code.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/color.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/company.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/component.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/dashboard.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/date-range.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/date.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/dict.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/documentation.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/download.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/drag.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/druid.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/edit.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/education.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/email.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/example.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/excel.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/exit-fullscreen.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/eye-open.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/eye.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/form.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/fullscreen.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/github.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/guide.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/icon.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/input.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/international.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/job.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/language.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/link.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/list.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/lock.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/log.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/logininfor.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/message.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/money.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/monitor.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/nested.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/number.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/online.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/password.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/pdf.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/people.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/peoples.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/phone.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/post.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/qq.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/question.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/radio.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/rate.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/redis-list.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/redis.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/row.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/search.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/select.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/server.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/shopping.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/size.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/skill.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/slider.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/star.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/swagger.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/switch.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/system.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/tab.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/table.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/textarea.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/theme.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/time-range.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/time.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/tool.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/tree-table.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/tree.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/upload.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/user.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/validCode.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/wechat.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svg/zip.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/icons/svgo.yml
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/images/dark.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/images/light.svg
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/images/login-background.jpgBinary files differ
ruoyi-ui/src/assets/images/profile.jpgBinary files differ
ruoyi-ui/src/assets/logo/logo.pngBinary files differ
ruoyi-ui/src/assets/styles/btn.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/element-ui.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/element-variables.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/index.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/mixin.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/ruoyi.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/sidebar.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/transition.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/assets/styles/variables.scss
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Breadcrumb/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/day.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/hour.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/min.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/month.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/result.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/second.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/week.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Crontab/year.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/DictData/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/components/DictTag/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Editor/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/FileUpload/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Hamburger/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/HeaderSearch/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/IconSelect/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/IconSelect/requireIcons.js
ÎļþÒÑɾ³ý ruoyi-ui/src/components/ImagePreview/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/ImageUpload/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Pagination/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/PanThumb/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/ParentView/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/RightPanel/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/RightToolbar/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/RuoYi/Doc/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/RuoYi/Git/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/Screenfull/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/SizeSelect/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/SvgIcon/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/ThemePicker/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/TopNav/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/components/iFrame/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/directive/dialog/drag.js
ÎļþÒÑɾ³ý ruoyi-ui/src/directive/dialog/dragHeight.js
ÎļþÒÑɾ³ý ruoyi-ui/src/directive/dialog/dragWidth.js
ÎļþÒÑɾ³ý ruoyi-ui/src/directive/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/directive/module/clipboard.js
ÎļþÒÑɾ³ý ruoyi-ui/src/directive/permission/hasPermi.js
ÎļþÒÑɾ³ý ruoyi-ui/src/directive/permission/hasRole.js
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/AppMain.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/IframeToggle/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/InnerLink/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Navbar.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Settings/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Sidebar/FixiOSBug.js
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Sidebar/Item.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Sidebar/Link.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Sidebar/Logo.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Sidebar/SidebarItem.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/Sidebar/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/TagsView/ScrollPane.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/TagsView/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/components/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/layout/mixin/ResizeHandler.js
ÎļþÒÑɾ³ý ruoyi-ui/src/main.js
ÎļþÒÑɾ³ý ruoyi-ui/src/permission.js
ÎļþÒÑɾ³ý ruoyi-ui/src/plugins/auth.js
ÎļþÒÑɾ³ý ruoyi-ui/src/plugins/cache.js
ÎļþÒÑɾ³ý ruoyi-ui/src/plugins/download.js
ÎļþÒÑɾ³ý ruoyi-ui/src/plugins/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/plugins/modal.js
ÎļþÒÑɾ³ý ruoyi-ui/src/plugins/tab.js
ÎļþÒÑɾ³ý ruoyi-ui/src/router/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/settings.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/getters.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/modules/app.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/modules/dict.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/modules/permission.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/modules/settings.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/modules/tagsView.js
ÎļþÒÑɾ³ý ruoyi-ui/src/store/modules/user.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/auth.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/dict/Dict.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/dict/DictConverter.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/dict/DictData.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/dict/DictMeta.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/dict/DictOptions.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/dict/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/errorCode.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/generator/config.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/generator/css.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/generator/drawingDefault.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/generator/html.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/generator/icon.json
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/generator/js.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/generator/render.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/index.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/jsencrypt.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/permission.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/request.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/ruoyi.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/scroll-to.js
ÎļþÒÑɾ³ý ruoyi-ui/src/utils/validate.js
ÎļþÒÑɾ³ý ruoyi-ui/src/views/components/icons/element-icons.js
ÎļþÒÑɾ³ý ruoyi-ui/src/views/components/icons/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/components/icons/svg-icons.js
ÎļþÒÑɾ³ý ruoyi-ui/src/views/dashboard/BarChart.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/dashboard/LineChart.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/dashboard/PanelGroup.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/dashboard/PieChart.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/dashboard/RaddarChart.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/dashboard/mixins/resize.js
ÎļþÒÑɾ³ý ruoyi-ui/src/views/demo/demo/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/demo/tree/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/error/401.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/error/404.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/index_v1.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/login.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/monitor/admin/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/monitor/cache/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/monitor/logininfor/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/monitor/online/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/monitor/operlog/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/monitor/xxljob/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/redirect.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/register.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/config/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/dept/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/dict/data.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/dict/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/menu/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/notice/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/oss/config.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/oss/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/post/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/role/authUser.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/role/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/role/selectUser.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/tenant/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/tenantPackage/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/user/authRole.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/user/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/user/profile/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/user/profile/resetPwd.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/user/profile/userAvatar.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/system/user/profile/userInfo.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/build/CodeTypeDialog.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/build/DraggableItem.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/build/IconsDialog.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/build/RightPanel.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/build/TreeNodeDialog.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/build/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/gen/basicInfoForm.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/gen/editTable.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/gen/genInfoForm.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/gen/importTable.vue
ÎļþÒÑɾ³ý ruoyi-ui/src/views/tool/gen/index.vue
ÎļþÒÑɾ³ý ruoyi-ui/vue.config.js
ÎļþÒÑɾ³ý