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
送卡人修改
master
1 parent
b6c81cd
commit
3e9865cc19cc72be480679f68ffc84685d0a34ea
jiangqihao
authored
on 26 Sep
Patch
Showing
2 changed files
src/views/card/delivery/CardDeliveryPerson.data.ts
src/views/card/delivery/CardDeliveryPersonList.vue
Ignore Space
Show notes
View
src/views/card/delivery/CardDeliveryPerson.data.ts
import {BasicColumn} from '/@/components/Table'; import {FormSchema} from '/@/components/Table'; import { rules} from '/@/utils/helper/validator'; import { render } from '/@/utils/common/renderUtils'; import { getWeekMonthQuarterYear } from '/@/utils'; import { on } from 'events'; //列表数据 export const columns: BasicColumn[] = [ { title: '送卡人姓名', align:"center", dataIndex: 'name' }, { title: '手机号', align:"center", dataIndex: 'phone' }, { title: '电信工号', align:"center", dataIndex: 'dxWorkNo' }, { title: '应收办卡费用', align:"center", dataIndex: 'receivableFee' }, { title: '全部办卡费用', align:"center", dataIndex: 'allFee' }, { title: '省市区', align:"center", dataIndex: 'area', }, { title: '详细地址', align:"center", dataIndex: 'address' }, { title: '状态', align:"center", dataIndex: 'status', customRender:({text}) => { return render.renderSwitch(text, [{text:'正常',value:'Y'},{text:'失效',value:'N'}]) }, }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ { label: "送卡人姓名", field: 'name', component: 'Input', //colProps: {span: 6}, }, { label: "手机号", field: 'phone', component: 'Input', //colProps: {span: 6}, }, { label: "区", field: 'area', component: 'JAreaLinkage', componentProps: { saveCode: 'region', }, //colProps: {span: 6}, }, { label: "状态", field: 'status', component: 'JSwitch', componentProps:{ query:true, }, //colProps: {span: 6}, }, ]; //表单数据 export const formSchema: FormSchema[] = [ { label: '送卡人姓名', field: 'name', component: 'Input', dynamicRules: ({model,schema}) => { return [ { required: true, message: '请输入送卡人姓名!'}, ]; }, }, { label: '手机号', field: 'phone', component: 'Input', dynamicRules: ({model,schema}) => { return [ { required: true, message: '请输入手机号!'}, { pattern: /^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'}, ]; }, }, { label: '电信工号', field: 'dxWorkNo', component: 'Input', }, { label: '应收办卡费用', field: 'receivableFee', component: 'InputNumber', dynamicRules: ({model,schema}) => { return [ { required: false}, { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'}, ]; }, }, { label: '全部办卡费用', field: 'allFee', component: 'InputNumber', dynamicRules: ({model,schema}) => { return [ { required: false}, { pattern: /^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'}, ]; }, }, { label: '省市区', field: 'area', component: 'JAreaLinkage', componentProps: { saveCode: 'all', showAll: true, onChange: (value) => { console.log(value); } }, }, { label: '详细地址', field: 'address', component: 'Input', }, { label: '状态', field: 'status', component: 'JSwitch', componentProps:{ }, }, // TODO 主键隐藏字段,目前写死为ID { label: '', field: 'id', component: 'Input', show: false }, ]; // 高级查询数据 export const superQuerySchema = { name: {title: '送卡人姓名',order: 0,view: 'text', type: 'string',}, phone: {title: '手机号',order: 1,view: 'text', type: 'string',}, dxWorkNo: {title: '电信工号',order: 2,view: 'text', type: 'string',}, receivableFee: {title: '应收办卡费用',order: 3,view: 'number', type: 'number',}, allFee: {title: '全部办卡费用',order: 4,view: 'number', type: 'number',}, province: {title: '省',order: 5,view: 'pca', type: 'string',}, city: {title: '市',order: 6,view: 'pca', type: 'string',}, area: {title: '区',order: 7,view: 'pca', type: 'string',}, address: {title: '详细地址',order: 8,view: 'text', type: 'string',}, status: {title: '状态',order: 9,view: 'switch', type: 'string',}, }; /** * 流程表单调用这个方法获取formSchema * @param param */ export function getBpmFormSchema(_formData): FormSchema[]{ // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema return formSchema; }
import {BasicColumn} from '/@/components/Table'; import {FormSchema} from '/@/components/Table'; import { rules} from '/@/utils/helper/validator'; import { render } from '/@/utils/common/renderUtils'; import { getWeekMonthQuarterYear } from '/@/utils'; //列表数据 export const columns: BasicColumn[] = [ { title: '姓名', align:"center", dataIndex: 'name' }, { title: '手机号', align:"center", dataIndex: 'phone' }, { title: '电信工号', align:"center", dataIndex: 'dxWorkNo' }, { title: '待处理工单数', align:"center", dataIndex: 'waitDealWorkNum' }, { title: '已处理工单数', align:"center", dataIndex: 'dealWorkNum' }, { title: '总工单数', align:"center", dataIndex: 'totalWorkNum' }, { title: '应收办卡费用', align:"center", dataIndex: 'receivableFee' }, { title: '全部办卡费用', align:"center", dataIndex: 'allFee' }, ]; //查询数据 export const searchFormSchema: FormSchema[] = [ ]; //表单数据 export const formSchema: FormSchema[] = [ { label: '姓名', field: 'name', component: 'Input', }, { label: '手机号', field: 'phone', component: 'Input', }, { label: '电信工号', field: 'dxWorkNo', component: 'Input', }, { label: '待处理工单数', field: 'waitDealWorkNum', component: 'InputNumber', }, { label: '已处理工单数', field: 'dealWorkNum', component: 'InputNumber', }, { label: '总工单数', field: 'totalWorkNum', component: 'InputNumber', }, { label: '应收办卡费用', field: 'receivableFee', component: 'InputNumber', }, { label: '全部办卡费用', field: 'allFee', component: 'InputNumber', }, // TODO 主键隐藏字段,目前写死为ID { label: '', field: 'id', component: 'Input', show: false }, ]; // 高级查询数据 export const superQuerySchema = { name: {title: '姓名',order: 0,view: 'text', type: 'string',}, phone: {title: '手机号',order: 1,view: 'text', type: 'string',}, dxWorkNo: {title: '电信工号',order: 2,view: 'text', type: 'string',}, waitDealWorkNum: {title: '待处理工单数',order: 3,view: 'number', type: 'number',}, dealWorkNum: {title: '已处理工单数',order: 4,view: 'number', type: 'number',}, totalWorkNum: {title: '总工单数',order: 5,view: 'number', type: 'number',}, receivableFee: {title: '应收办卡费用',order: 6,view: 'number', type: 'number',}, allFee: {title: '全部办卡费用',order: 7,view: 'number', type: 'number',}, }; /** * 流程表单调用这个方法获取formSchema * @param param */ export function getBpmFormSchema(_formData): FormSchema[]{ // 默认和原始表单保持一致 如果流程中配置了权限数据,这里需要单独处理formSchema return formSchema; }
Ignore Space
Show notes
View
src/views/card/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} 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 handleEdit(record: Recordable) { openModal(true, { record, isUpdate: true, showFooter: true, }); } /** * 详情 */ function handleDetail(record: Recordable) { 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>
<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> </BasicTable> <!-- 表单区域 --> <CardDeliveryPersonModal @register="registerModal" @success="handleSuccess"></CardDeliveryPersonModal> </div> </template> <script lang="ts" name="cardDeliveryPersonList" 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 { 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: 'card_delivery_person', 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:"card_delivery_person", 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 handleEdit(record: Recordable) { openModal(true, { record, isUpdate: true, showFooter: true, }); } /** * 详情 */ function handleDetail(record: Recordable) { 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