index.vue.vm 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
  4. #foreach($column in $columns)
  5. #if($column.query)
  6. #set($dictType=$column.dictType)
  7. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  8. #set($parentheseIndex=$column.columnComment.indexOf("("))
  9. #if($parentheseIndex != -1)
  10. #set($comment=$column.columnComment.substring(0, $parentheseIndex))
  11. #else
  12. #set($comment=$column.columnComment)
  13. #end
  14. #if(($column.javaField == "unifiedSocialCreditCode" || $column.javaField.contains(
  15. "Name")) && $column.htmlType == "input")
  16. <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
  17. <el-input
  18. v-model="queryParams.${column.javaField}"
  19. placeholder="请输入${comment}"
  20. clearable
  21. @keyup.enter="handleQuery"
  22. />
  23. </el-form-item>
  24. #elseif(($column.javaField == "unifiedSocialCreditCode" || $column.javaField.contains(
  25. "Name")) && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $dictType)
  26. <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
  27. <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable>
  28. <el-option
  29. v-for="dict in ${dictType}"
  30. :key="dict.value"
  31. :label="dict.label"
  32. :value="dict.value"
  33. />
  34. </el-select>
  35. </el-form-item>
  36. #elseif(($column.javaField == "unifiedSocialCreditCode" || $column.javaField.contains(
  37. "Name")) && ($column.htmlType == "select" || $column.htmlType == "radio") && $dictType)
  38. <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
  39. <el-select v-model="queryParams.${column.javaField}" placeholder="请选择${comment}" clearable>
  40. <el-option label="请选择字典生成" value=""/>
  41. </el-select>
  42. </el-form-item>
  43. #elseif(($column.javaField == "unifiedSocialCreditCode" || $column.javaField.contains(
  44. "Name")) && $column.htmlType == "datetime" && $column.queryType != "BETWEEN")
  45. <el-form-item label="${comment}" prop="${column.javaField}" label-width="200">
  46. <el-date-picker clearable
  47. v-model="queryParams.${column.javaField}"
  48. type="date"
  49. value-format="YYYY-MM-DD"
  50. placeholder="请选择${comment}">
  51. </el-date-picker>
  52. </el-form-item>
  53. #elseif(($column.javaField == "unifiedSocialCreditCode" || $column.javaField.contains(
  54. "Name")) && $column.htmlType == "datetime" && $column.queryType == "BETWEEN")
  55. <el-form-item label="${comment}" style="width: 308px" label-width="200">
  56. <el-date-picker
  57. v-model="daterange${AttrName}"
  58. value-format="YYYY-MM-DD"
  59. type="daterange"
  60. range-separator="-"
  61. start-placeholder="开始日期"
  62. end-placeholder="结束日期"
  63. ></el-date-picker>
  64. </el-form-item>
  65. #end
  66. #end
  67. #end
  68. <el-form-item>
  69. <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
  70. <el-button icon="Refresh" @click="resetQuery">重置</el-button>
  71. </el-form-item>
  72. </el-form>
  73. <el-row :gutter="10" class="mb8">
  74. <el-col :span="1.5">
  75. <el-popconfirm
  76. title="你确定清除所有数据?"
  77. confirm-button-text="是的"
  78. cancel-button-text="不是"
  79. :icon="InfoFilled"
  80. icon-color="#626AEF"
  81. @confirm="handleDelete"
  82. >
  83. <template #reference>
  84. <el-button
  85. type="danger"
  86. plain
  87. icon="Delete"
  88. v-hasPermi="['${moduleName}:${businessName}:remove']"
  89. >清除全表
  90. </el-button>
  91. </template>
  92. </el-popconfirm>
  93. </el-col>
  94. <el-col :span="1.5">
  95. <el-button
  96. type="danger"
  97. plain
  98. icon="Delete"
  99. @click="batchDelete"
  100. v-hasPermi="['${moduleName}:${businessName}:remove']"
  101. :disabled="ids.length === 0"
  102. >批量删除
  103. </el-button>
  104. </el-col>
  105. <el-col :span="1.5">
  106. <el-button
  107. type="warning"
  108. plain
  109. icon="Download"
  110. @click="handleExport"
  111. :disabled="!${businessName}List.length"
  112. v-hasPermi="['${moduleName}:${businessName}:export']"
  113. >导出
  114. </el-button>
  115. </el-col>
  116. <el-col :span="1.5">
  117. <el-button type="info" plain icon="Upload" @click="handleImport"
  118. v-hasPermi="['system:user:import']">导入
  119. </el-button>
  120. </el-col>
  121. <el-col :span="1.5">
  122. <el-button type="success" plain icon="Download" @click="downloadTemplate">
  123. 下载导入模板
  124. </el-button>
  125. </el-col>
  126. ## <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
  127. </el-row>
  128. <el-table v-loading="loading" :data="${businessName}List" height="650" @selection-change="handleSelectionChange">
  129. <el-table-column type="selection" width="55" align="center"/>
  130. #foreach($column in $columns)
  131. #set($javaField=$column.javaField)
  132. #set($parentheseIndex=$column.columnComment.indexOf("("))
  133. #if($parentheseIndex != -1)
  134. #set($comment=$column.columnComment.substring(0, $parentheseIndex))
  135. #else
  136. #set($comment=$column.columnComment)
  137. #end
  138. #if($column.pk)
  139. ## <el-table-column label="${comment}" align="center" prop="${javaField}" />
  140. #elseif($column.list && $column.htmlType == "datetime")
  141. <el-table-column label="${comment}" align="center" prop="${javaField}" width="180">
  142. <template #default="scope">
  143. <span>{{ parseTime(scope.row.${javaField}, '{y}-{m}-{d}') }}</span>
  144. </template>
  145. </el-table-column>
  146. #elseif($column.list && $column.htmlType == "imageUpload")
  147. <el-table-column label="${comment}" align="center" prop="${javaField}" width="100">
  148. <template #default="scope">
  149. <image-preview :src="scope.row.${javaField}" :width="50" :height="50"/>
  150. </template>
  151. </el-table-column>
  152. #elseif($column.list && "" != $column.dictType)
  153. <el-table-column label="${comment}" align="center" prop="${javaField}">
  154. <template #default="scope">
  155. #if($column.htmlType == "checkbox")
  156. <dict-tag :options="${column.dictType}"
  157. :value="scope.row.${javaField} ? scope.row.${javaField}.split(',') : []"/>
  158. #else
  159. <dict-tag :options="${column.dictType}" :value="scope.row.${javaField}"/>
  160. #end
  161. </template>
  162. </el-table-column>
  163. #elseif($column.list && "" != $javaField)
  164. #if($javaField == "unifiedSocialCreditCode")
  165. <el-table-column label="${comment}" align="center" prop="${javaField}" width="200"/>
  166. #else
  167. <el-table-column label="${comment}" align="center" prop="${javaField}" :show-overflow-tooltip='true'/>
  168. #end
  169. #end
  170. #end
  171. ## <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  172. ## <template #default="scope">
  173. ## <el-button
  174. ## type="text"
  175. ## icon="Edit"
  176. ## @click="handleUpdate(scope.row)"
  177. ## v-hasPermi="['${moduleName}:${businessName}:edit']"
  178. ## >修改</el-button>
  179. ## <el-button
  180. ## type="text"
  181. ## icon="Delete"
  182. ## @click="handleDelete(scope.row)"
  183. ## v-hasPermi="['${moduleName}:${businessName}:remove']"
  184. ## >删除</el-button>
  185. ## </template>
  186. ## </el-table-column>
  187. </el-table>
  188. <div style="position: fixed;bottom: 20px;right: 10px;">
  189. <pagination
  190. v-show="total>0"
  191. :total="total"
  192. v-model:page="queryParams.pageNum"
  193. v-model:limit="queryParams.pageSize"
  194. @pagination="getList"
  195. />
  196. </div>
  197. <el-dialog :title="upload.title" v-model="upload.open" width="400px" append-to-body>
  198. <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
  199. :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
  200. :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
  201. <el-icon class="el-icon--upload">
  202. <upload-filled/>
  203. </el-icon>
  204. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  205. <template #tip>
  206. <div class="el-upload__tip text-center">
  207. <span>仅允许导入xls、xlsx格式文件。</span>
  208. </div>
  209. </template>
  210. </el-upload>
  211. <template #footer>
  212. <div class="dialog-footer">
  213. <el-button type="primary" @click="submitFileForm">确 定</el-button>
  214. <el-button @click="upload.open = false">取 消</el-button>
  215. </div>
  216. </template>
  217. </el-dialog>
  218. <!-- 添加或修改${functionName}对话框 -->
  219. ## <el-dialog :title="title" v-model="open" width="500px" append-to-body>
  220. ## <el-form ref="${businessName}Ref" :model="form" :rules="rules" label-width="80px">
  221. ###foreach($column in $columns)
  222. ###set($field=$column.javaField)
  223. ###if($column.insert && !$column.pk)
  224. ###if(($column.usableColumn) || (!$column.superColumn))
  225. ###set($parentheseIndex=$column.columnComment.indexOf("("))
  226. ###if($parentheseIndex != -1)
  227. ###set($comment=$column.columnComment.substring(0, $parentheseIndex))
  228. ###else
  229. ###set($comment=$column.columnComment)
  230. ###end
  231. ###set($dictType=$column.dictType)
  232. ###if($column.htmlType == "input")
  233. ## <el-form-item label="${comment}" prop="${field}">
  234. ## <el-input v-model="form.${field}" placeholder="请输入${comment}" />
  235. ## </el-form-item>
  236. ###elseif($column.htmlType == "imageUpload")
  237. ## <el-form-item label="${comment}">
  238. ## <image-upload v-model="form.${field}"/>
  239. ## </el-form-item>
  240. ###elseif($column.htmlType == "fileUpload")
  241. ## <el-form-item label="${comment}">
  242. ## <file-upload v-model="form.${field}"/>
  243. ## </el-form-item>
  244. ###elseif($column.htmlType == "editor")
  245. ## <el-form-item label="${comment}">
  246. ## <editor v-model="form.${field}" :min-height="192"/>
  247. ## </el-form-item>
  248. ###elseif($column.htmlType == "select" && "" != $dictType)
  249. ## <el-form-item label="${comment}" prop="${field}">
  250. ## <el-select v-model="form.${field}" placeholder="请选择${comment}">
  251. ## <el-option
  252. ## v-for="dict in ${dictType}"
  253. ## :key="dict.value"
  254. ## :label="dict.label"
  255. ## #if($column.javaType == "Integer" || $column.javaType == "Long"):value="parseInt(dict.value)"#else:value="dict.value"#end
  256. ##
  257. ## ></el-option>
  258. ## </el-select>
  259. ## </el-form-item>
  260. ###elseif($column.htmlType == "select" && $dictType)
  261. ## <el-form-item label="${comment}" prop="${field}">
  262. ## <el-select v-model="form.${field}" placeholder="请选择${comment}">
  263. ## <el-option label="请选择字典生成" value="" />
  264. ## </el-select>
  265. ## </el-form-item>
  266. ###elseif($column.htmlType == "checkbox" && "" != $dictType)
  267. ## <el-form-item label="${comment}">
  268. ## <el-checkbox-group v-model="form.${field}">
  269. ## <el-checkbox
  270. ## v-for="dict in ${dictType}"
  271. ## :key="dict.value"
  272. ## :label="dict.value">
  273. ## {{dict.label}}
  274. ## </el-checkbox>
  275. ## </el-checkbox-group>
  276. ## </el-form-item>
  277. ###elseif($column.htmlType == "checkbox" && $dictType)
  278. ## <el-form-item label="${comment}">
  279. ## <el-checkbox-group v-model="form.${field}">
  280. ## <el-checkbox>请选择字典生成</el-checkbox>
  281. ## </el-checkbox-group>
  282. ## </el-form-item>
  283. ###elseif($column.htmlType == "radio" && "" != $dictType)
  284. ## <el-form-item label="${comment}">
  285. ## <el-radio-group v-model="form.${field}">
  286. ## <el-radio
  287. ## v-for="dict in ${dictType}"
  288. ## :key="dict.value"
  289. ## #if($column.javaType == "Integer" || $column.javaType == "Long"):label="parseInt(dict.value)"#else:label="dict.value"#end
  290. ##
  291. ## >{{dict.label}}</el-radio>
  292. ## </el-radio-group>
  293. ## </el-form-item>
  294. ###elseif($column.htmlType == "radio" && $dictType)
  295. ## <el-form-item label="${comment}">
  296. ## <el-radio-group v-model="form.${field}">
  297. ## <el-radio label="1">请选择字典生成</el-radio>
  298. ## </el-radio-group>
  299. ## </el-form-item>
  300. ###elseif($column.htmlType == "datetime")
  301. ## <el-form-item label="${comment}" prop="${field}">
  302. ## <el-date-picker clearable
  303. ## v-model="form.${field}"
  304. ## type="date"
  305. ## value-format="YYYY-MM-DD"
  306. ## placeholder="请选择${comment}">
  307. ## </el-date-picker>
  308. ## </el-form-item>
  309. ###elseif($column.htmlType == "textarea")
  310. ## <el-form-item label="${comment}" prop="${field}">
  311. ## <el-input v-model="form.${field}" type="textarea" placeholder="请输入内容" />
  312. ## </el-form-item>
  313. ###end
  314. ###end
  315. ###end
  316. ###end
  317. ###if($table.sub)
  318. ## <el-divider content-position="center">${subTable.functionName}信息</el-divider>
  319. ## <el-row :gutter="10" class="mb8">
  320. ## <el-col :span="1.5">
  321. ## <el-button type="primary" icon="Plus" @click="handleAdd${subClassName}">添加</el-button>
  322. ## </el-col>
  323. ## <el-col :span="1.5">
  324. ## <el-button type="danger" icon="Delete" @click="handleDelete${subClassName}">删除</el-button>
  325. ## </el-col>
  326. ## </el-row>
  327. ## <el-table :data="${subclassName}List" :row-class-name="row${subClassName}Index" @selection-change="handle${subClassName}SelectionChange" ref="${subclassName}">
  328. ## <el-table-column type="selection" width="50" align="center" />
  329. ## <el-table-column label="序号" align="center" prop="index" width="50"/>
  330. ###foreach($column in $subTable.columns)
  331. ###set($javaField=$column.javaField)
  332. ###set($parentheseIndex=$column.columnComment.indexOf("("))
  333. ###if($parentheseIndex != -1)
  334. ###set($comment=$column.columnComment.substring(0, $parentheseIndex))
  335. ###else
  336. ###set($comment=$column.columnComment)
  337. ###end
  338. ###if($column.pk || $javaField == ${subTableFkclassName})
  339. ###elseif($column.list && $column.htmlType == "input")
  340. ## <el-table-column label="$comment" prop="${javaField}" width="150">
  341. ## <template #default="scope">
  342. ## <el-input v-model="scope.row.$javaField" placeholder="请输入$comment" />
  343. ## </template>
  344. ## </el-table-column>
  345. ###elseif($column.list && $column.htmlType == "datetime")
  346. ## <el-table-column label="$comment" prop="${javaField}" width="240">
  347. ## <template #default="scope">
  348. ## <el-date-picker clearable
  349. ## v-model="scope.row.$javaField"
  350. ## type="date"
  351. ## value-format="YYYY-MM-DD"
  352. ## placeholder="请选择$comment">
  353. ## </el-date-picker>
  354. ## </template>
  355. ## </el-table-column>
  356. ###elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" != $column.dictType)
  357. ## <el-table-column label="$comment" prop="${javaField}" width="150">
  358. ## <template #default="scope">
  359. ## <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
  360. ## <el-option
  361. ## v-for="dict in $column.dictType"
  362. ## :key="dict.value"
  363. ## :label="dict.label"
  364. ## :value="dict.value"
  365. ## ></el-option>
  366. ## </el-select>
  367. ## </template>
  368. ## </el-table-column>
  369. ###elseif($column.list && ($column.htmlType == "select" || $column.htmlType == "radio") && "" == $column.dictType)
  370. ## <el-table-column label="$comment" prop="${javaField}" width="150">
  371. ## <template #default="scope">
  372. ## <el-select v-model="scope.row.$javaField" placeholder="请选择$comment">
  373. ## <el-option label="请选择字典生成" value="" />
  374. ## </el-select>
  375. ## </template>
  376. ## </el-table-column>
  377. ###end
  378. ###end
  379. ## </el-table>
  380. ###end
  381. ## </el-form>
  382. ## <template #footer>
  383. ## <div class="dialog-footer">
  384. ## <el-button type="primary" @click="submitForm">确 定</el-button>
  385. ## <el-button @click="cancel">取 消</el-button>
  386. ## </div>
  387. ## </template>
  388. ## </el-dialog>
  389. </div>
  390. </template>
  391. <script setup name="${BusinessName}">
  392. import {
  393. list${BusinessName},
  394. get${BusinessName},
  395. del${BusinessName},
  396. del${BusinessName}Batch
  397. } from "@/api/${moduleName}/${businessName}";
  398. import {reactive, ref, toRaw} from "vue";
  399. import {getToken} from "@/utils/auth";
  400. import {ElMessage} from "element-plus";
  401. import {likeQueryMethod} from "@/utils/likeQueryMethod";
  402. const {proxy} = getCurrentInstance();
  403. #if(${dicts} != '')
  404. #set($dictsNoSymbol=$dicts.replace("'", ""))
  405. const { ${dictsNoSymbol} } = proxy.useDict(${dicts});
  406. #end
  407. const ${businessName}List = ref([]);
  408. #if($table.sub)
  409. const ${subclassName}List = ref([]);
  410. #end
  411. const open = ref(false);
  412. const loading = ref(true);
  413. const showSearch = ref(true);
  414. const ids = ref([]);
  415. #if($table.sub)
  416. const checked${subClassName} = ref([]);
  417. #end
  418. const single = ref(true);
  419. const multiple = ref(true);
  420. const total = ref(0);
  421. const title = ref("");
  422. #foreach ($column in $columns)
  423. #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
  424. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  425. const daterange${AttrName} = ref([]);
  426. #end
  427. #end
  428. const upload = reactive({
  429. // 是否显示弹出层(用户导入)
  430. open: false,
  431. // 弹出层标题(用户导入)
  432. title: '',
  433. // 是否禁用上传
  434. isUploading: false,
  435. // 设置上传的请求头部
  436. headers: {Authorization: getToken()},
  437. // 上传的地址
  438. url: import.meta.env.VITE_APP_BASE_API + '/${className}/importData'
  439. })
  440. const handleFileSuccess = (e) => {
  441. if (e.code == 200) {
  442. ElMessage({
  443. type: "success",
  444. message: e.msg
  445. })
  446. getList()
  447. proxy.$refs['uploadRef']?.clearFiles()
  448. } else {
  449. ElMessage({
  450. type: "error",
  451. message: e.msg
  452. })
  453. proxy.$refs['uploadRef']?.clearFiles()
  454. }
  455. }
  456. function submitFileForm() {
  457. proxy.$refs['uploadRef']?.submit();
  458. upload.open = false;
  459. }
  460. function handleImport() {
  461. upload.open = true
  462. }
  463. const data = reactive({
  464. form: {},
  465. queryParams: {
  466. pageNum: 1,
  467. pageSize: 20,
  468. #foreach ($column in $columns)
  469. #if($column.query)
  470. #if($column.javaField == 'unifiedSocialCreditCode')
  471. $column.javaField: ''#if($foreach.count != $columns.size()),#end
  472. #else
  473. $column.javaField: null#if($foreach.count != $columns.size()),#end
  474. #end
  475. #end
  476. #end
  477. },
  478. rules: {
  479. #foreach ($column in $columns)
  480. #if($column.required)
  481. #set($parentheseIndex=$column.columnComment.indexOf("("))
  482. #if($parentheseIndex != -1)
  483. #set($comment=$column.columnComment.substring(0, $parentheseIndex))
  484. #else
  485. #set($comment=$column.columnComment)
  486. #end
  487. $column.javaField: [
  488. {
  489. required: true, message: "$comment不能为空", trigger: #if($column.htmlType == "select")"change"
  490. #else"blur"#end }
  491. ]#if($foreach.count != $columns.size()),#end
  492. #end
  493. #end
  494. }
  495. });
  496. const {queryParams, form, rules} = toRefs(data);
  497. /** 查询${functionName}列表 */
  498. function getList() {
  499. loading.value = true;
  500. ## #foreach ($column in $columns)
  501. ## #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
  502. ## queryParams.value.params = {};
  503. ## #break
  504. ## #end
  505. ## #end
  506. ## #foreach ($column in $columns)
  507. ## #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
  508. ## #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  509. ## if (null != daterange${AttrName} && '' != daterange${AttrName}) {
  510. ## queryParams.value.params["begin${AttrName}"] = daterange${AttrName}.value[0];
  511. ## queryParams.value.params["end${AttrName}"] = daterange${AttrName}.value[1];
  512. ## }
  513. ## #end
  514. ## #end
  515. let toServerObj = likeQueryMethod('unified_social_credit_code', queryParams.value.unifiedSocialCreditCode, queryParams.value.pageNum, queryParams.value.pageSize);
  516. list${BusinessName}(toServerObj).then(response => {
  517. ${businessName}List.value = response.records;
  518. total.value = response.total;
  519. loading.value = false;
  520. });
  521. }
  522. // 表单重置
  523. function reset() {
  524. form.value = {
  525. #foreach ($column in $columns)
  526. #if($column.htmlType == "radio")
  527. $column.javaField: #if($column.javaType == "Integer" || $column.javaType == "Long")0
  528. #else"0"#end#if($foreach.count != $columns.size()),#end
  529. #elseif($column.htmlType == "checkbox")
  530. $column.javaField: []#if($foreach.count != $columns.size()),#end
  531. #else
  532. #if($column.javaField == 'unifiedSocialCreditCode')
  533. $column.javaField: ''#if($foreach.count != $columns.size()),#end
  534. #else
  535. $column.javaField: null#if($foreach.count != $columns.size()),#end
  536. #end
  537. #end
  538. #end
  539. };
  540. #if($table.sub)
  541. ${subclassName}List.value = [];
  542. #end
  543. proxy.resetForm("${businessName}Ref");
  544. }
  545. /** 搜索按钮操作 */
  546. function handleQuery() {
  547. queryParams.value.pageNum = 1;
  548. getList();
  549. }
  550. /** 重置按钮操作 */
  551. function resetQuery() {
  552. #foreach ($column in $columns)
  553. #if($column.htmlType == "datetime" && $column.queryType == "BETWEEN")
  554. #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
  555. daterange${AttrName}.value = [];
  556. #end
  557. #end
  558. proxy.resetForm("queryRef");
  559. handleQuery();
  560. }
  561. // 多选框选中数据
  562. function handleSelectionChange(selection) {
  563. ids.value = selection.map(item => item.${pkColumn.javaField});
  564. single.value = selection.length != 1;
  565. multiple.value = !selection.length;
  566. }
  567. /** 删除按钮操作 */
  568. async function handleDelete(row) {
  569. const res = await del${BusinessName}();
  570. if(res.code == 200){
  571. ElMessage({
  572. type:'success',
  573. message:'删除成功'
  574. })
  575. getList();
  576. }
  577. }
  578. /** 批量删除*/
  579. const batchDelete = (row)=>{
  580. const idsToS = row.id || ids.value;
  581. (proxy.$modal).confirm('是否确认删除这' + idsToS.length+'条的数据项?').then(function() {
  582. return del${BusinessName}Batch(toRaw(idsToS));
  583. }).then(() => {
  584. getList();
  585. proxy.$modal.msgSuccess("删除成功");
  586. }).catch(() => {});
  587. }
  588. /** 导出按钮操作 */
  589. function handleExport() {
  590. proxy.download('${className}/exportData', {
  591. ...queryParams.value
  592. }, `${functionName}_#[[${new Date().getTime()}]]#.xlsx`)
  593. }
  594. const downloadTemplate = ()=>{
  595. proxy.download('${className}/getUploadTemplate',{}, `${functionName}模板.xlsx`)
  596. }
  597. getList();
  598. </script>