GitBucket
4.23.0
Toggle navigation
Sign in
Files
Branches
1
Releases
Issues
Pull requests
Labels
Priorities
Milestones
Wiki
Forks
fujun
/
dxCard-admin
Browse code
update
master
1 parent
0fc5f20
commit
b5830b17041c129b5031e967e98942fa72fbfb03
jiangqihao
authored
7 days ago
Patch
Showing
2 changed files
src/views/delivery/CardDeliveryPerson.api.ts
src/views/delivery/CardDeliveryPersonList.vue
Ignore Space
Show notes
View
src/views/delivery/CardDeliveryPerson.api.ts
import {defHttp} from '/@/utils/http/axios'; import { useMessage } from "/@/hooks/web/useMessage"; const { createConfirm } = useMessage(); enum Api { list = '/card/cardDeliveryPerson/list', save='/card/cardDeliveryPerson/add', edit='/card/cardDeliveryPerson/edit', deleteOne = '/card/cardDeliveryPerson/delete', deleteBatch = '/card/cardDeliveryPerson/deleteBatch', importExcel = '/card/cardDeliveryPerson/importExcel', exportXls = '/card/cardDeliveryPerson/exportXls', updateStatus = '/card/cardDeliveryPerson/updateStatus', } /** * 导出api * @param params */ export const getExportUrl = Api.exportXls; /** * 导入api */ export const getImportUrl = Api.importExcel; /** * 列表接口 * @param params */ export const list = (params) => defHttp.get({url: Api.list, params}); /** * 删除单个 */ export const deleteOne = (params,handleSuccess) => { return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { handleSuccess(); }); } /** * 批量删除 * @param params */ export const batchDelete = (params, handleSuccess) => { createConfirm({ iconType: 'warning', title: '确认删除', content: '是否删除选中数据', okText: '确认', cancelText: '取消', onOk: () => { return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { handleSuccess(); }); } }); } /** * 保存或者更新 * @param params */ export const saveOrUpdate = (params, isUpdate) => { let url = isUpdate ? Api.edit : Api.save; return defHttp.post({url: url, params}); } export const updateStatus = (id,status) => { return defHttp.post({url: Api.updateStatus, data: {id, status}}); }
import {defHttp} from '/@/utils/http/axios'; import { useMessage } from "/@/hooks/web/useMessage"; const { createConfirm } = useMessage(); enum Api { list = '/card/cardDeliveryPerson/list', save='/card/cardDeliveryPerson/add', edit='/card/cardDeliveryPerson/edit', deleteOne = '/card/cardDeliveryPerson/delete', deleteBatch = '/card/cardDeliveryPerson/deleteBatch', importExcel = '/card/cardDeliveryPerson/importExcel', exportXls = '/card/cardDeliveryPerson/exportXls', } /** * 导出api * @param params */ export const getExportUrl = Api.exportXls; /** * 导入api */ export const getImportUrl = Api.importExcel; /** * 列表接口 * @param params */ export const list = (params) => defHttp.get({url: Api.list, params}); /** * 删除单个 */ export const deleteOne = (params,handleSuccess) => { return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { handleSuccess(); }); } /** * 批量删除 * @param params */ export const batchDelete = (params, handleSuccess) => { createConfirm({ iconType: 'warning', title: '确认删除', content: '是否删除选中数据', okText: '确认', cancelText: '取消', onOk: () => { return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { handleSuccess(); }); } }); } /** * 保存或者更新 * @param params */ export const saveOrUpdate = (params, isUpdate) => { let url = isUpdate ? Api.edit : Api.save; return defHttp.post({url: url, params}); }
Ignore Space
Show notes
View
src/views/delivery/CardDeliveryPersonList.vue
<template> <div> <!--引用表格--> <BasicTable @register="registerTable" :rowSelection="rowSelection"> <!--插槽:table标题--> <template #tableTitle> <a-button type="primary" v-auth="'card_delivery_person:add'" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button> <a-button type="primary" v-auth="'card_delivery_person:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button> <j-upload-button type="primary" v-auth="'card_delivery_person:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button> <a-dropdown v-if="selectedRowKeys.length > 0"> <template #overlay> <a-menu> <a-menu-item key="1" @click="batchHandleDelete"> <Icon icon="ant-design:delete-outlined"></Icon> 删除 </a-menu-item> </a-menu> </template> <a-button v-auth="'card_delivery_person:deleteBatch'">批量操作 <Icon icon="mdi:chevron-down"></Icon> </a-button> </a-dropdown> <!-- 高级查询 --> <super-query :config="superQueryConfig" @search="handleSuperQuery" /> </template> <!--操作栏--> <template #action="{ record }"> <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/> </template> <!--字段回显插槽--> <template v-slot:bodyCell="{ column, record, index, text }"> <template v-if="column.dataIndex==='province'"> <!--省市区字段回显插槽--> {{ getAreaTextByCode(text) }} </template> <template v-if="column.dataIndex==='city'"> <!--省市区字段回显插槽--> {{ getAreaTextByCode(text) }} </template> <template v-if="column.dataIndex==='area'"> <!--省市区字段回显插槽--> {{ getAreaTextByCode(text) }} </template> </template> </BasicTable> <!-- 表单区域 --> <CardDeliveryPersonModal @register="registerModal" @success="handleSuccess"></CardDeliveryPersonModal> </div> </template> <script lang="ts" name="org.jeecg.modules.system-cardDeliveryPerson" setup> import {ref, reactive, computed, unref} from 'vue'; import {BasicTable, useTable, TableAction} from '/@/components/Table'; import {useModal} from '/@/components/Modal'; import { useListPage } from '/@/hooks/system/useListPage' import CardDeliveryPersonModal from './components/CardDeliveryPersonModal.vue' import {columns, searchFormSchema, superQuerySchema} from './CardDeliveryPerson.data'; import {list, deleteOne, batchDelete, getImportUrl,getExportUrl, updateStatus} from './CardDeliveryPerson.api'; import { downloadFile } from '/@/utils/common/renderUtils'; import { useUserStore } from '/@/store/modules/user'; import { useMessage } from '/@/hooks/web/useMessage'; import { getAreaTextByCode } from '/@/components/Form/src/utils/Area'; import { getDateByPicker } from '/@/utils'; //日期个性化选择 const fieldPickers = reactive({ }); const queryParam = reactive<any>({}); const checkedKeys = ref<Array<string | number>>([]); const userStore = useUserStore(); const { createMessage } = useMessage(); //注册model const [registerModal, {openModal}] = useModal(); //注册table数据 const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({ tableProps:{ title: '送卡人管理', api: list, columns, canResize:true, formConfig: { //labelWidth: 120, schemas: searchFormSchema, autoSubmitOnEnter:true, showAdvancedButton:true, fieldMapToNumber: [ ], fieldMapToTime: [ ], }, actionColumn: { width: 160, fixed:'right' }, beforeFetch: (params) => { if (params && fieldPickers) { for (let key in fieldPickers) { if (params[key]) { params[key] = getDateByPicker(params[key], fieldPickers[key]); } } } return Object.assign(params, queryParam); }, }, exportConfig: { name:"送卡人管理", url: getExportUrl, params: queryParam, }, importConfig: { url: getImportUrl, success: handleSuccess }, }) const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext // 高级查询配置 const superQueryConfig = reactive(superQuerySchema); /** * 高级查询事件 */ function handleSuperQuery(params) { Object.keys(params).map((k) => { queryParam[k] = params[k]; }); reload(); } /** * 新增事件 */ function handleAdd() { openModal(true, { isUpdate: false, showFooter: true, }); } function formatAreaField(record: Recordable){ let arr = []; if(record.province){ arr.push(record.province); } if(record.city){ arr.push(record.city); } if(record.area){ arr.push(record.area); } return arr.join(','); } /** * 编辑事件 */ function handleEdit(record: Recordable) { record.areaAll = formatAreaField(record); console.log('edit record',record); openModal(true, { record, isUpdate: true, showFooter: true, }); } /** * 详情 */ function handleDetail(record: Recordable) { record.areaAll = formatAreaField(record); console.log('detail record',record); openModal(true, { record, isUpdate: true, showFooter: false, }); } /** * 删除事件 */ async function handleDelete(record) { await deleteOne({id: record.id}, handleSuccess); } /** * 批量删除事件 */ async function batchHandleDelete() { await batchDelete({ids: selectedRowKeys.value}, handleSuccess); } /** * 成功回调 */ function handleSuccess() { (selectedRowKeys.value = []) && reload(); } function handleChangeStatus(record: Recordable){ const newStatus = record.status === '启用' ? '0' : '1'; updateStatus(record.id, newStatus).then(()=>{ handleSuccess(); }); } /** * 操作栏 */ function getTableAction(record){ const actionArr = [ { label: '编辑', onClick: handleEdit.bind(null, record), auth: 'card_delivery_person:edit' }, { label: record.status === '启用' ? '停用' : '启用', onClick: handleChangeStatus.bind(null, record), auth: 'card_delivery_person:status' } ] return actionArr; } /** * 下拉操作栏 */ function getDropDownAction(record){ return [ { label: '详情', onClick: handleDetail.bind(null, record), }, { label: '删除', popConfirm: { title: '是否确认删除', confirm: handleDelete.bind(null, record), placement: 'topLeft', }, auth: 'card_delivery_person:delete' } ] } </script> <style lang="less" scoped> :deep(.ant-picker),:deep(.ant-input-number){ width: 100%; } </style>
<template> <div> <!--引用表格--> <BasicTable @register="registerTable" :rowSelection="rowSelection"> <!--插槽:table标题--> <template #tableTitle> <a-button type="primary" v-auth="'card_delivery_person:add'" @click="handleAdd" preIcon="ant-design:plus-outlined"> 新增</a-button> <a-button type="primary" v-auth="'card_delivery_person:exportXls'" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button> <j-upload-button type="primary" v-auth="'card_delivery_person:importExcel'" preIcon="ant-design:import-outlined" @click="onImportXls">导入</j-upload-button> <a-dropdown v-if="selectedRowKeys.length > 0"> <template #overlay> <a-menu> <a-menu-item key="1" @click="batchHandleDelete"> <Icon icon="ant-design:delete-outlined"></Icon> 删除 </a-menu-item> </a-menu> </template> <a-button v-auth="'card_delivery_person:deleteBatch'">批量操作 <Icon icon="mdi:chevron-down"></Icon> </a-button> </a-dropdown> <!-- 高级查询 --> <super-query :config="superQueryConfig" @search="handleSuperQuery" /> </template> <!--操作栏--> <template #action="{ record }"> <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)"/> </template> <!--字段回显插槽--> <template v-slot:bodyCell="{ column, record, index, text }"> <template v-if="column.dataIndex==='province'"> <!--省市区字段回显插槽--> {{ getAreaTextByCode(text) }} </template> <template v-if="column.dataIndex==='city'"> <!--省市区字段回显插槽--> {{ getAreaTextByCode(text) }} </template> <template v-if="column.dataIndex==='area'"> <!--省市区字段回显插槽--> {{ getAreaTextByCode(text) }} </template> </template> </BasicTable> <!-- 表单区域 --> <CardDeliveryPersonModal @register="registerModal" @success="handleSuccess"></CardDeliveryPersonModal> </div> </template> <script lang="ts" name="org.jeecg.modules.system-cardDeliveryPerson" setup> import {ref, reactive, computed, unref} from 'vue'; import {BasicTable, useTable, TableAction} from '/@/components/Table'; import {useModal} from '/@/components/Modal'; import { useListPage } from '/@/hooks/system/useListPage' import CardDeliveryPersonModal from './components/CardDeliveryPersonModal.vue' import {columns, searchFormSchema, superQuerySchema} from './CardDeliveryPerson.data'; import {list, deleteOne, batchDelete, getImportUrl,getExportUrl} from './CardDeliveryPerson.api'; import { downloadFile } from '/@/utils/common/renderUtils'; import { useUserStore } from '/@/store/modules/user'; import { useMessage } from '/@/hooks/web/useMessage'; import { getAreaTextByCode } from '/@/components/Form/src/utils/Area'; import { getDateByPicker } from '/@/utils'; //日期个性化选择 const fieldPickers = reactive({ }); const queryParam = reactive<any>({}); const checkedKeys = ref<Array<string | number>>([]); const userStore = useUserStore(); const { createMessage } = useMessage(); //注册model const [registerModal, {openModal}] = useModal(); //注册table数据 const { prefixCls,tableContext,onExportXls,onImportXls } = useListPage({ tableProps:{ title: '送卡人管理', api: list, columns, canResize:true, formConfig: { //labelWidth: 120, schemas: searchFormSchema, autoSubmitOnEnter:true, showAdvancedButton:true, fieldMapToNumber: [ ], fieldMapToTime: [ ], }, actionColumn: { width: 120, fixed:'right' }, beforeFetch: (params) => { if (params && fieldPickers) { for (let key in fieldPickers) { if (params[key]) { params[key] = getDateByPicker(params[key], fieldPickers[key]); } } } return Object.assign(params, queryParam); }, }, exportConfig: { name:"送卡人管理", url: getExportUrl, params: queryParam, }, importConfig: { url: getImportUrl, success: handleSuccess }, }) const [registerTable, {reload},{ rowSelection, selectedRowKeys }] = tableContext // 高级查询配置 const superQueryConfig = reactive(superQuerySchema); /** * 高级查询事件 */ function handleSuperQuery(params) { Object.keys(params).map((k) => { queryParam[k] = params[k]; }); reload(); } /** * 新增事件 */ function handleAdd() { openModal(true, { isUpdate: false, showFooter: true, }); } function formatAreaField(record: Recordable){ let arr = []; if(record.province){ arr.push(record.province); } if(record.city){ arr.push(record.city); } if(record.area){ arr.push(record.area); } return arr.join(','); } /** * 编辑事件 */ function handleEdit(record: Recordable) { record.areaAll = formatAreaField(record); console.log('edit record',record); openModal(true, { record, isUpdate: true, showFooter: true, }); } /** * 详情 */ function handleDetail(record: Recordable) { record.areaAll = formatAreaField(record); console.log('detail record',record); openModal(true, { record, isUpdate: true, showFooter: false, }); } /** * 删除事件 */ async function handleDelete(record) { await deleteOne({id: record.id}, handleSuccess); } /** * 批量删除事件 */ async function batchHandleDelete() { await batchDelete({ids: selectedRowKeys.value}, handleSuccess); } /** * 成功回调 */ function handleSuccess() { (selectedRowKeys.value = []) && reload(); } /** * 操作栏 */ function getTableAction(record){ return [ { label: '编辑', onClick: handleEdit.bind(null, record), auth: 'card_delivery_person:edit' } ] } /** * 下拉操作栏 */ function getDropDownAction(record){ return [ { label: '详情', onClick: handleDetail.bind(null, record), }, { label: '删除', popConfirm: { title: '是否确认删除', confirm: handleDelete.bind(null, record), placement: 'topLeft', }, auth: 'card_delivery_person:delete' } ] } </script> <style lang="less" scoped> :deep(.ant-picker),:deep(.ant-input-number){ width: 100%; } </style>
Show line notes below