diff --git a/src/api/sales/ScoreCustomer/index.ts b/src/api/sales/ScoreCustomer/index.ts new file mode 100644 index 0000000..0af5409 --- /dev/null +++ b/src/api/sales/ScoreCustomer/index.ts @@ -0,0 +1,89 @@ +import { LngScorePageModel, LngScorePageParams, LngScorePageResult } from './model/ScoreCustomerModel'; +import { defHttp } from '/@/utils/http/axios'; +import { ErrorMessageMode } from '/#/axios'; + +enum Api { + Page = '/sales/scoreCustomer/page', + List = '/sales/scoreCustomer/list', + Info = '/sales/scoreCustomer/info', + LngScore = '/sales/scoreCustomer', + + + + +} + +/** + * @description: 查询LngScore分页列表 + */ +export async function getLngScorePage(params: LngScorePageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Page, + params, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 获取LngScore信息 + */ +export async function getLngScore(id: String, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Info, + params: { id }, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 新增LngScore + */ +export async function addLngScore(lngScore: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.post( + { + url: Api.LngScore, + params: lngScore, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 更新LngScore + */ +export async function updateLngScore(lngScore: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.put( + { + url: Api.LngScore, + params: lngScore, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 删除LngScore(批量删除) + */ +export async function deleteLngScore(ids: string[], mode: ErrorMessageMode = 'modal') { + return defHttp.delete( + { + url: Api.LngScore, + data: ids, + }, + { + errorMessageMode: mode, + }, + ); +} \ No newline at end of file diff --git a/src/api/sales/ScoreCustomer/model/ScoreCustomerModel.ts b/src/api/sales/ScoreCustomer/model/ScoreCustomerModel.ts new file mode 100644 index 0000000..c6db9d9 --- /dev/null +++ b/src/api/sales/ScoreCustomer/model/ScoreCustomerModel.ts @@ -0,0 +1,127 @@ +import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'; + +/** + * @description: LngScore分页参数 模型 + */ +export interface LngScorePageParams extends BasicPageParams { + cpCode: string; + + gsId: string; + + dateGradeStart: string; + dateGradeEnd: string; + + score: string; + + approCode: string; + + note: string; +} + +/** + * @description: LngScore分页返回值模型 + */ +export interface LngScorePageModel { + id: string; + + cpCode: string; + + gsId: string; + + dateGrade: string; + + score: string; + + approCode: string; + + note: string; +} + +/** + * @description: LngScore表类型 + */ +export interface LngScoreModel { + id: number; + + dateGrade: string; + + gsId: number; + + tableName: string; + + cpCode: string; + + score: number; + + approCode: string; + + note: string; + + createUserId: number; + + createDate: string; + + modifyUserId: number; + + modifyDate: string; + + tenantId: number; + + deptId: number; + + ruleUserId: number; + + lngScoreDtlList?: LngScoreDtlModel; +} + +/** + * @description: LngScoreDtl表类型 + */ +export interface LngScoreDtlModel { + id: number; + + sId: number; + + gsId: number; + + gsiId: number; + + itemName: string; + + itemDesc: string; + + eDeptCode: string; + + sort: number; + + aDeptCode: string; + + aEmpCode: string; + + aTime: string; + + score: number; + + scoreDesc: string; + + note: string; + + createUserId: number; + + createDate: string; + + modifyUserId: number; + + modifyDate: string; + + tenantId: number; + + deptId: number; + + ruleUserId: number; +} + +/** + * @description: LngScore分页返回值结构 + */ +export type LngScorePageResult = BasicFetchResult; \ No newline at end of file diff --git a/src/api/supplier/ScoreSupplier/index.ts b/src/api/supplier/ScoreSupplier/index.ts new file mode 100644 index 0000000..176ec5b --- /dev/null +++ b/src/api/supplier/ScoreSupplier/index.ts @@ -0,0 +1,89 @@ +import { LngScorePageModel, LngScorePageParams, LngScorePageResult } from './model/ScoreSupplierModel'; +import { defHttp } from '/@/utils/http/axios'; +import { ErrorMessageMode } from '/#/axios'; + +enum Api { + Page = '/supplier/scoreSupplier/page', + List = '/supplier/scoreSupplier/list', + Info = '/supplier/scoreSupplier/info', + LngScore = '/supplier/scoreSupplier', + + + + +} + +/** + * @description: 查询LngScore分页列表 + */ +export async function getLngScorePage(params: LngScorePageParams, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Page, + params, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 获取LngScore信息 + */ +export async function getLngScore(id: String, mode: ErrorMessageMode = 'modal') { + return defHttp.get( + { + url: Api.Info, + params: { id }, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 新增LngScore + */ +export async function addLngScore(lngScore: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.post( + { + url: Api.LngScore, + params: lngScore, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 更新LngScore + */ +export async function updateLngScore(lngScore: Recordable, mode: ErrorMessageMode = 'modal') { + return defHttp.put( + { + url: Api.LngScore, + params: lngScore, + }, + { + errorMessageMode: mode, + }, + ); +} + +/** + * @description: 删除LngScore(批量删除) + */ +export async function deleteLngScore(ids: string[], mode: ErrorMessageMode = 'modal') { + return defHttp.delete( + { + url: Api.LngScore, + data: ids, + }, + { + errorMessageMode: mode, + }, + ); +} \ No newline at end of file diff --git a/src/api/supplier/ScoreSupplier/model/ScoreSupplierModel.ts b/src/api/supplier/ScoreSupplier/model/ScoreSupplierModel.ts new file mode 100644 index 0000000..c6db9d9 --- /dev/null +++ b/src/api/supplier/ScoreSupplier/model/ScoreSupplierModel.ts @@ -0,0 +1,127 @@ +import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'; + +/** + * @description: LngScore分页参数 模型 + */ +export interface LngScorePageParams extends BasicPageParams { + cpCode: string; + + gsId: string; + + dateGradeStart: string; + dateGradeEnd: string; + + score: string; + + approCode: string; + + note: string; +} + +/** + * @description: LngScore分页返回值模型 + */ +export interface LngScorePageModel { + id: string; + + cpCode: string; + + gsId: string; + + dateGrade: string; + + score: string; + + approCode: string; + + note: string; +} + +/** + * @description: LngScore表类型 + */ +export interface LngScoreModel { + id: number; + + dateGrade: string; + + gsId: number; + + tableName: string; + + cpCode: string; + + score: number; + + approCode: string; + + note: string; + + createUserId: number; + + createDate: string; + + modifyUserId: number; + + modifyDate: string; + + tenantId: number; + + deptId: number; + + ruleUserId: number; + + lngScoreDtlList?: LngScoreDtlModel; +} + +/** + * @description: LngScoreDtl表类型 + */ +export interface LngScoreDtlModel { + id: number; + + sId: number; + + gsId: number; + + gsiId: number; + + itemName: string; + + itemDesc: string; + + eDeptCode: string; + + sort: number; + + aDeptCode: string; + + aEmpCode: string; + + aTime: string; + + score: number; + + scoreDesc: string; + + note: string; + + createUserId: number; + + createDate: string; + + modifyUserId: number; + + modifyDate: string; + + tenantId: number; + + deptId: number; + + ruleUserId: number; +} + +/** + * @description: LngScore分页返回值结构 + */ +export type LngScorePageResult = BasicFetchResult; \ No newline at end of file diff --git a/src/views/sales/Customer/components/config.ts b/src/views/sales/Customer/components/config.ts index e43dab7..26b54e7 100644 --- a/src/views/sales/Customer/components/config.ts +++ b/src/views/sales/Customer/components/config.ts @@ -56,7 +56,7 @@ export const columns: BasicColumn[] = [ }, { - dataIndex: 'cuMcode', + dataIndex: 'natureCode', title: '企业性质', componentType: 'input', align: 'left', @@ -83,7 +83,7 @@ export const columns: BasicColumn[] = [ }, { - dataIndex: 'natureCode', + dataIndex: 'dI', title: '国内国际', componentType: 'input', align: 'left', @@ -282,7 +282,7 @@ export const formProps: FormProps = { }, { key: '2fecf58a5ef44a24a449eb923af58661', - field: 'cuMcode', + field: 'natureCode', label: '企业性质', type: 'input', component: 'Input', @@ -384,7 +384,7 @@ export const formProps: FormProps = { }, { key: '5e5cc97203854b539736d29387c56639', - field: 'natureCode', + field: 'dI', label: '国内国际', type: 'input', component: 'Input', diff --git a/src/views/sales/CustomerGroup/components/Form.vue b/src/views/sales/CustomerGroup/components/Form.vue index b9d5b2e..55d03d8 100644 --- a/src/views/sales/CustomerGroup/components/Form.vue +++ b/src/views/sales/CustomerGroup/components/Form.vue @@ -84,9 +84,9 @@ { title: t('序号'), dataIndex: 'index', key: 'index', sorter: true, customRender: (column) => `${column.index + 1}` ,width: 100}, { title: t('客户编码'), dataIndex: 'cuCode', sorter: true, width:100}, { title: t('客户名称'), dataIndex: 'cuName', sorter: true}, - { title: t('国内/国际'), dataIndex: 'natureCode', sorter: true, width: 140}, - { title: t('客户类别'), dataIndex: 'typeCode', sorter: true, width: 140}, - { title: t('客户分类'), dataIndex: 'classCode', sorter: true, width: 140}, + { title: t('国内/国际'), dataIndex: 'diName', sorter: true, width: 140}, + { title: t('客户类别'), dataIndex: 'typeName', sorter: true, width: 140}, + { title: t('客户分类'), dataIndex: 'className', sorter: true, width: 140}, { title: t('操作'), dataIndex: 'operation', width: 120}, ]); const dataList = ref([]) @@ -116,6 +116,12 @@ dataList.value.splice(index, 1) } const handleSuccess = (val) => { + val.forEach(v => { + delete v.id + v.diName = v.dI + v.typeName = v.typeCode + v.className = v.classCode + }) if (!dataList.value.length) { dataList.value = val return diff --git a/src/views/sales/CustomerGroup/components/customerListModal.vue b/src/views/sales/CustomerGroup/components/customerListModal.vue index 2eed41b..f79b84c 100644 --- a/src/views/sales/CustomerGroup/components/customerListModal.vue +++ b/src/views/sales/CustomerGroup/components/customerListModal.vue @@ -45,7 +45,7 @@ sorter: true, }, { - dataIndex: 'natureCode', + dataIndex: 'dI', title: '国内/国际', align: 'left', sorter: true, diff --git a/src/views/sales/ScoreCustomer/components/Form.vue b/src/views/sales/ScoreCustomer/components/Form.vue new file mode 100644 index 0000000..afe8b0a --- /dev/null +++ b/src/views/sales/ScoreCustomer/components/Form.vue @@ -0,0 +1,224 @@ + + \ No newline at end of file diff --git a/src/views/sales/ScoreCustomer/components/ScoreCustomerModal.vue b/src/views/sales/ScoreCustomer/components/ScoreCustomerModal.vue new file mode 100644 index 0000000..168dd47 --- /dev/null +++ b/src/views/sales/ScoreCustomer/components/ScoreCustomerModal.vue @@ -0,0 +1,110 @@ + + \ No newline at end of file diff --git a/src/views/sales/ScoreCustomer/components/config.ts b/src/views/sales/ScoreCustomer/components/config.ts new file mode 100644 index 0000000..f361419 --- /dev/null +++ b/src/views/sales/ScoreCustomer/components/config.ts @@ -0,0 +1,473 @@ +import { FormProps, FormSchema } from '/@/components/Form'; +import { BasicColumn } from '/@/components/Table'; + +export const formConfig = { + useCustomConfig: false, +}; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'cpCode', + label: '客户', + component: 'Input', + }, + { + field: 'gsId', + label: '评价体系', + component: 'XjrSelect', + componentProps: { + datasourceType: 'api', + apiConfig: { + path: 'CodeGeneration/selection', + method: 'GET', + apiId: '93d735dcb7364a0f8102188ec4d77ac7', + }, + labelField: 'label', + valueField: 'value', + + getPopupContainer: () => document.body, + }, + }, + { + field: 'dateGrade', + label: '日期选择', + component: 'RangePicker', + componentProps: { + format: 'YYYY-MM-DD HH:mm:ss', + style: { width: '100%' }, + getPopupContainer: () => document.body, + }, + }, + + { + field: 'score', + label: '分数合计', + component: 'Input', + }, + { + field: 'approCode', + label: '审批状态', + component: 'XjrSelect', + componentProps: { + datasourceType: 'dic', + params: { itemId: '1990669393069129729' }, + labelField: 'name', + valueField: 'value', + + getPopupContainer: () => document.body, + }, + }, + { + field: 'note', + label: '备注', + component: 'Input', + }, +]; + +export const columns: BasicColumn[] = [ + { + dataIndex: 'cpCode', + title: '客户', + componentType: 'input', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'gsId', + title: '评价体系', + componentType: 'select', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'dateGrade', + title: '日期选择', + componentType: 'date', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'score', + title: '分数合计', + componentType: 'input', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'approCode', + title: '审批状态', + componentType: 'select', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'note', + title: '备注', + componentType: 'textarea', + align: 'left', + + sorter: true, + }, +]; +//表单事件 +export const formEventConfigs = { + 0: [ + { + type: 'circle', + color: '#2774ff', + text: '开始节点', + icon: '#icon-kaishi', + bgcColor: '#D8E5FF', + isUserDefined: false, + }, + { + color: '#F6AB01', + icon: '#icon-chushihua', + text: '初始化表单', + bgcColor: '#f9f5ea', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 1: [ + { + color: '#B36EDB', + icon: '#icon-shujufenxi', + text: '获取表单数据', + detail: '(新增无此操作)', + bgcColor: '#F8F2FC', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 2: [ + { + color: '#F8625C', + icon: '#icon-jiazai', + text: '加载表单', + bgcColor: '#FFF1F1', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 3: [ + { + color: '#6C6AE0', + icon: '#icon-jsontijiao', + text: '提交表单', + bgcColor: '#F5F4FF', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 4: [ + { + type: 'circle', + color: '#F8625C', + text: '结束节点', + icon: '#icon-jieshuzhiliao', + bgcColor: '#FFD6D6', + isLast: true, + isUserDefined: false, + }, + ], +}; +export const formProps: FormProps = { + labelCol: { span: 3, offset: 0 }, + labelAlign: 'right', + layout: 'horizontal', + size: 'default', + schemas: [ + { + key: 'bce7e08dcdbe441f961684f8918b2f49', + field: 'cpCode', + label: '客户', + type: 'input', + component: 'Input', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请输入客户', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: false, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + style: { width: '100%' }, + }, + }, + { + key: '9a78e309015944e194ecc5633c8f3f6f', + field: 'gsId', + label: '评价体系', + type: 'select', + component: 'XjrSelect', + colProps: { span: 24 }, + componentProps: { + width: '100%', + span: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请选择下拉选择', + sepTextField: '', + showLabel: true, + showSearch: false, + clearable: false, + disabled: false, + mode: 'multiple', + staticOptions: [ + { key: 1, label: 'Option 1', value: 'Option 1' }, + { key: 2, label: 'Option 2', value: 'Option 2' }, + { key: 3, label: 'Option 3', value: 'Option 3' }, + ], + defaultSelect: '', + datasourceType: 'api', + params: null, + labelField: 'label', + valueField: 'value', + apiConfig: { + path: 'CodeGeneration/selection', + method: 'GET', + apiId: '93d735dcb7364a0f8102188ec4d77ac7', + }, + dicOptions: [], + required: false, + rules: [], + events: {}, + isShow: true, + style: { width: '100%' }, + }, + }, + { + key: '5f77a0a1b9424089937f8fd8f8ba6ee6', + field: 'dateGrade', + label: '日期选择', + type: 'date', + component: 'DatePicker', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + span: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + defaultValue: '', + width: '100%', + placeholder: '评价日期', + format: 'YYYY-MM-DD HH:mm:ss', + showLabel: true, + allowClear: true, + disabled: false, + required: false, + isShow: true, + rules: [], + events: {}, + style: { width: '100%' }, + }, + }, + { + key: 'c1e72db502be49bea43662a5999141ac', + field: 'score', + label: '分数合计', + type: 'input', + component: 'Input', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请输入分数合计', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: false, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + style: { width: '100%' }, + }, + }, + { + key: 'c406d01d4e7f45e3bced67d45c74c219', + field: 'approCode', + label: '审批状态', + type: 'select', + component: 'XjrSelect', + colProps: { span: 24 }, + componentProps: { + width: '100%', + span: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请选择下拉选择', + sepTextField: '', + showLabel: true, + showSearch: false, + clearable: false, + disabled: true, + mode: '', + staticOptions: [ + { key: 1, label: 'Option 1', value: 'Option 1' }, + { key: 2, label: 'Option 2', value: 'Option 2' }, + { key: 3, label: 'Option 3', value: 'Option 3' }, + ], + defaultSelect: 'WTJ', + datasourceType: 'dic', + params: { itemId: '1990669393069129729' }, + labelField: 'name', + valueField: 'value', + apiConfig: { + path: 'CodeGeneration/selection', + method: 'GET', + apiId: '93d735dcb7364a0f8102188ec4d77ac7', + }, + dicOptions: [], + required: false, + rules: [], + events: {}, + isShow: true, + itemId: '1990669393069129729', + style: { width: '100%' }, + }, + }, + { + key: '1a3a4d269ef948bd9e2359ad75049b8a', + field: 'note', + label: '备注', + type: 'textarea', + component: 'InputTextArea', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: true, + placeholder: '请输入备注', + maxlength: null, + rows: 2, + autoSize: false, + showCount: false, + disabled: false, + showLabel: true, + allowClear: false, + required: false, + isShow: true, + rules: [], + events: {}, + style: { width: '100%' }, + }, + }, + { + key: '3da2176f219a4ec09dd11c230d8fd703', + label: '表格组件', + field: 'lngScoreDtlList', + type: 'form', + component: 'SubForm', + required: true, + colProps: { span: 24 }, + componentProps: { + mainKey: 'lngScoreDtlList', + columns: [ + { + key: '63a56cc582f8409fb2de85b98a96585a', + title: '单行文本', + dataIndex: 'itemName', + componentType: 'Input', + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请输入单行文本', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: false, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + }, + }, + { title: '操作', key: 'action', fixed: 'right', width: '50px' }, + ], + span: '24', + preloadType: 'api', + apiConfig: {}, + itemId: '', + dicOptions: [], + useSelectButton: false, + buttonName: '选择数据', + showLabel: true, + showComponentBorder: true, + showFormBorder: true, + showIndex: false, + isShow: true, + multipleHeads: [], + }, + }, + ], + showActionButtonGroup: false, + buttonLocation: 'center', + actionColOptions: { span: 24 }, + showResetButton: false, + showSubmitButton: false, + hiddenComponent: [], +}; \ No newline at end of file diff --git a/src/views/sales/ScoreCustomer/components/workflowPermission.ts b/src/views/sales/ScoreCustomer/components/workflowPermission.ts new file mode 100644 index 0000000..cff8c78 --- /dev/null +++ b/src/views/sales/ScoreCustomer/components/workflowPermission.ts @@ -0,0 +1,121 @@ +export const permissionList = [ + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '客户', + fieldId: 'cpCode', + isSubTable: false, + showChildren: true, + type: 'input', + key: 'bce7e08dcdbe441f961684f8918b2f49', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '评价体系', + fieldId: 'gsId', + isSubTable: false, + showChildren: true, + type: 'select', + key: '9a78e309015944e194ecc5633c8f3f6f', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '日期选择', + fieldId: 'dateGrade', + isSubTable: false, + showChildren: true, + type: 'date', + key: '5f77a0a1b9424089937f8fd8f8ba6ee6', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '分数合计', + fieldId: 'score', + isSubTable: false, + showChildren: true, + type: 'input', + key: 'c1e72db502be49bea43662a5999141ac', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '审批状态', + fieldId: 'approCode', + isSubTable: false, + showChildren: true, + type: 'select', + key: 'c406d01d4e7f45e3bced67d45c74c219', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '备注', + fieldId: 'note', + isSubTable: false, + showChildren: true, + type: 'textarea', + key: '1a3a4d269ef948bd9e2359ad75049b8a', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSubTable: true, + showChildren: false, + tableName: 'lngScoreDtlList', + fieldName: '表格组件', + fieldId: 'lngScoreDtlList', + type: 'form', + key: '3da2176f219a4ec09dd11c230d8fd703', + children: [ + { + required: true, + view: true, + edit: true, + disabled: false, + isSubTable: true, + isSaveTable: false, + showChildren: false, + tableName: 'lngScoreDtlList', + fieldName: '单行文本', + fieldId: 'itemName', + key: '63a56cc582f8409fb2de85b98a96585a', + children: [], + }, + ], + }, +]; \ No newline at end of file diff --git a/src/views/sales/ScoreCustomer/index.vue b/src/views/sales/ScoreCustomer/index.vue new file mode 100644 index 0000000..84e8cea --- /dev/null +++ b/src/views/sales/ScoreCustomer/index.vue @@ -0,0 +1,405 @@ + + + \ No newline at end of file diff --git a/src/views/supplier/ScoreSupplier/components/Form.vue b/src/views/supplier/ScoreSupplier/components/Form.vue new file mode 100644 index 0000000..cf2a398 --- /dev/null +++ b/src/views/supplier/ScoreSupplier/components/Form.vue @@ -0,0 +1,224 @@ + + \ No newline at end of file diff --git a/src/views/supplier/ScoreSupplier/components/ScoreSupplierModal.vue b/src/views/supplier/ScoreSupplier/components/ScoreSupplierModal.vue new file mode 100644 index 0000000..168dd47 --- /dev/null +++ b/src/views/supplier/ScoreSupplier/components/ScoreSupplierModal.vue @@ -0,0 +1,110 @@ + + \ No newline at end of file diff --git a/src/views/supplier/ScoreSupplier/components/config.ts b/src/views/supplier/ScoreSupplier/components/config.ts new file mode 100644 index 0000000..a6b8a5c --- /dev/null +++ b/src/views/supplier/ScoreSupplier/components/config.ts @@ -0,0 +1,471 @@ +import { FormProps, FormSchema } from '/@/components/Form'; +import { BasicColumn } from '/@/components/Table'; + +export const formConfig = { + useCustomConfig: false, +}; + +export const searchFormSchema: FormSchema[] = [ + { + field: 'cpCode', + label: '供应商', + component: 'Input', + }, + { + field: 'gsId', + label: '评价体系', + component: 'XjrSelect', + componentProps: { + datasourceType: 'api', + apiConfig: { + path: 'CodeGeneration/selection', + method: 'GET', + apiId: '93d735dcb7364a0f8102188ec4d77ac7', + }, + labelField: 'label', + valueField: 'value', + + getPopupContainer: () => document.body, + }, + }, + { + field: 'dateGrade', + label: '评价日期', + component: 'TimeRangePicker', + componentProps: { + format: 'HH:mm:ss', + style: { width: '100%' }, + getPopupContainer: () => document.body, + }, + }, + { + field: 'score', + label: '分数合计', + component: 'Input', + }, + { + field: 'approCode', + label: '审批状态', + component: 'XjrSelect', + componentProps: { + datasourceType: 'dic', + params: { itemId: '1990669393069129729' }, + labelField: 'name', + valueField: 'value', + + getPopupContainer: () => document.body, + }, + }, + { + field: 'note', + label: '备注', + component: 'Input', + }, +]; + +export const columns: BasicColumn[] = [ + { + dataIndex: 'cpCode', + title: '供应商', + componentType: 'input', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'gsId', + title: '评价体系', + componentType: 'select', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'dateGrade', + title: '评价日期', + componentType: 'time', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'score', + title: '分数合计', + componentType: 'input', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'approCode', + title: '审批状态', + componentType: 'select', + align: 'left', + + sorter: true, + }, + + { + dataIndex: 'note', + title: '备注', + componentType: 'textarea', + align: 'left', + + sorter: true, + }, +]; +//表单事件 +export const formEventConfigs = { + 0: [ + { + type: 'circle', + color: '#2774ff', + text: '开始节点', + icon: '#icon-kaishi', + bgcColor: '#D8E5FF', + isUserDefined: false, + }, + { + color: '#F6AB01', + icon: '#icon-chushihua', + text: '初始化表单', + bgcColor: '#f9f5ea', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 1: [ + { + color: '#B36EDB', + icon: '#icon-shujufenxi', + text: '获取表单数据', + detail: '(新增无此操作)', + bgcColor: '#F8F2FC', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 2: [ + { + color: '#F8625C', + icon: '#icon-jiazai', + text: '加载表单', + bgcColor: '#FFF1F1', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 3: [ + { + color: '#6C6AE0', + icon: '#icon-jsontijiao', + text: '提交表单', + bgcColor: '#F5F4FF', + isUserDefined: false, + nodeInfo: { processEvent: [] }, + }, + ], + 4: [ + { + type: 'circle', + color: '#F8625C', + text: '结束节点', + icon: '#icon-jieshuzhiliao', + bgcColor: '#FFD6D6', + isLast: true, + isUserDefined: false, + }, + ], +}; +export const formProps: FormProps = { + labelCol: { span: 3, offset: 0 }, + labelAlign: 'right', + layout: 'horizontal', + size: 'default', + schemas: [ + { + key: '5cea49518df847009ef88a4a7607c327', + field: 'cpCode', + label: '供应商', + type: 'input', + component: 'Input', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请输入供应商', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: false, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + style: { width: '100%' }, + }, + }, + { + key: '9c8f9af1121c40c2802e6479d515ca56', + field: 'gsId', + label: '评价体系', + type: 'select', + component: 'XjrSelect', + colProps: { span: 24 }, + componentProps: { + width: '100%', + span: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请选择下拉选择', + sepTextField: '', + showLabel: true, + showSearch: false, + clearable: false, + disabled: false, + mode: 'multiple', + staticOptions: [ + { key: 1, label: 'Option 1', value: 'Option 1' }, + { key: 2, label: 'Option 2', value: 'Option 2' }, + { key: 3, label: 'Option 3', value: 'Option 3' }, + ], + defaultSelect: '', + datasourceType: 'api', + params: null, + labelField: 'label', + valueField: 'value', + apiConfig: { + path: 'CodeGeneration/selection', + method: 'GET', + apiId: '93d735dcb7364a0f8102188ec4d77ac7', + }, + dicOptions: [], + required: false, + rules: [], + events: {}, + isShow: true, + style: { width: '100%' }, + }, + }, + { + key: '14b57d5a9264471fb752356b5ff174f1', + field: 'dateGrade', + label: '评价日期', + type: 'time', + component: 'TimePicker', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + span: '', + defaultValue: '', + width: '100%', + placeholder: '请选择评价日期', + format: 'HH:mm:ss', + showLabel: true, + allowClear: true, + disabled: false, + required: false, + rules: [], + events: {}, + isShow: true, + style: { width: '100%' }, + }, + }, + { + key: '6a6f0926b4734fe09d6db0469f13bfc3', + field: 'score', + label: '分数合计', + type: 'input', + component: 'Input', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请输入分数合计', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: false, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + style: { width: '100%' }, + }, + }, + { + key: '394f55d8b7e14587ac5762a90832fb87', + field: 'approCode', + label: '审批状态', + type: 'select', + component: 'XjrSelect', + colProps: { span: 24 }, + componentProps: { + width: '100%', + span: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请选择下拉选择审批状态', + sepTextField: '', + showLabel: true, + showSearch: false, + clearable: false, + disabled: true, + mode: '', + staticOptions: [ + { key: 1, label: 'Option 1', value: 'Option 1' }, + { key: 2, label: 'Option 2', value: 'Option 2' }, + { key: 3, label: 'Option 3', value: 'Option 3' }, + ], + defaultSelect: 'WTJ', + datasourceType: 'dic', + params: { itemId: '1990669393069129729' }, + labelField: 'name', + valueField: 'value', + apiConfig: { + path: 'CodeGeneration/selection', + method: 'GET', + apiId: '93d735dcb7364a0f8102188ec4d77ac7', + }, + dicOptions: [], + required: false, + rules: [], + events: {}, + isShow: true, + itemId: '1990669393069129729', + style: { width: '100%' }, + }, + }, + { + key: '2a53efcd8c154ae8b74ac7e9cb77e5b8', + field: 'note', + label: '备注', + type: 'textarea', + component: 'InputTextArea', + colProps: { span: 24 }, + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: true, + placeholder: '请输入备注', + maxlength: null, + rows: 2, + autoSize: false, + showCount: false, + disabled: false, + showLabel: true, + allowClear: false, + required: false, + isShow: true, + rules: [], + events: {}, + style: { width: '100%' }, + }, + }, + { + key: '437fbc6627ad493a8dc5546a480e5d45', + label: '表格组件', + field: 'lngScoreDtlList', + type: 'form', + component: 'SubForm', + required: true, + colProps: { span: 24 }, + componentProps: { + mainKey: 'lngScoreDtlList', + columns: [ + { + key: '6b60e016048a40ada38634af3c8741cd', + title: '单行文本', + dataIndex: 'itemName', + componentType: 'Input', + defaultValue: '', + componentProps: { + width: '100%', + span: '', + defaultValue: '', + labelWidthMode: 'fix', + labelFixWidth: 120, + responsive: false, + respNewRow: false, + placeholder: '请输入单行文本', + maxlength: null, + prefix: '', + suffix: '', + addonBefore: '', + addonAfter: '', + disabled: false, + allowClear: false, + showLabel: true, + required: false, + rules: [], + events: {}, + isSave: false, + isShow: true, + scan: false, + }, + }, + { title: '操作', key: 'action', fixed: 'right', width: '50px' }, + ], + span: '24', + preloadType: 'api', + apiConfig: {}, + itemId: '', + dicOptions: [], + useSelectButton: false, + buttonName: '选择数据', + showLabel: true, + showComponentBorder: true, + showFormBorder: true, + showIndex: false, + isShow: true, + multipleHeads: [], + }, + }, + ], + showActionButtonGroup: false, + buttonLocation: 'center', + actionColOptions: { span: 24 }, + showResetButton: false, + showSubmitButton: false, + hiddenComponent: [], +}; \ No newline at end of file diff --git a/src/views/supplier/ScoreSupplier/components/workflowPermission.ts b/src/views/supplier/ScoreSupplier/components/workflowPermission.ts new file mode 100644 index 0000000..b20612c --- /dev/null +++ b/src/views/supplier/ScoreSupplier/components/workflowPermission.ts @@ -0,0 +1,121 @@ +export const permissionList = [ + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '供应商', + fieldId: 'cpCode', + isSubTable: false, + showChildren: true, + type: 'input', + key: '5cea49518df847009ef88a4a7607c327', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '评价体系', + fieldId: 'gsId', + isSubTable: false, + showChildren: true, + type: 'select', + key: '9c8f9af1121c40c2802e6479d515ca56', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '评价日期', + fieldId: 'dateGrade', + isSubTable: false, + showChildren: true, + type: 'time', + key: '14b57d5a9264471fb752356b5ff174f1', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '分数合计', + fieldId: 'score', + isSubTable: false, + showChildren: true, + type: 'input', + key: '6a6f0926b4734fe09d6db0469f13bfc3', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '审批状态', + fieldId: 'approCode', + isSubTable: false, + showChildren: true, + type: 'select', + key: '394f55d8b7e14587ac5762a90832fb87', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSaveTable: false, + tableName: '', + fieldName: '备注', + fieldId: 'note', + isSubTable: false, + showChildren: true, + type: 'textarea', + key: '2a53efcd8c154ae8b74ac7e9cb77e5b8', + children: [], + }, + { + required: true, + view: true, + edit: true, + disabled: false, + isSubTable: true, + showChildren: false, + tableName: 'lngScoreDtlList', + fieldName: '表格组件', + fieldId: 'lngScoreDtlList', + type: 'form', + key: '437fbc6627ad493a8dc5546a480e5d45', + children: [ + { + required: true, + view: true, + edit: true, + disabled: false, + isSubTable: true, + isSaveTable: false, + showChildren: false, + tableName: 'lngScoreDtlList', + fieldName: '单行文本', + fieldId: 'itemName', + key: '6b60e016048a40ada38634af3c8741cd', + children: [], + }, + ], + }, +]; \ No newline at end of file diff --git a/src/views/supplier/ScoreSupplier/index.vue b/src/views/supplier/ScoreSupplier/index.vue new file mode 100644 index 0000000..a8930d5 --- /dev/null +++ b/src/views/supplier/ScoreSupplier/index.vue @@ -0,0 +1,405 @@ + + + \ No newline at end of file diff --git a/src/views/supplier/Supplier/components/createForm.vue b/src/views/supplier/Supplier/components/createForm.vue index 3d03b6d..7f37b3d 100644 --- a/src/views/supplier/Supplier/components/createForm.vue +++ b/src/views/supplier/Supplier/components/createForm.vue @@ -7,12 +7,12 @@

基本信息

- + - + @@ -26,12 +26,12 @@ - + - + @@ -230,10 +230,10 @@ import { useMultipleTabStore } from '/@/store/modules/multipleTab'; import useEventBus from '/@/hooks/event/useEventBus'; import type { Rule } from 'ant-design-vue/es/form'; - import { getDocCpList, getDictionary } from '/@/api/sales/Supplier'; - import certificateModal from '/@/views/sales/Supplier/components/certificateModal.vue'; - import contactModal from '/@/views/sales/Supplier/components/contactModal.vue'; - import bankModal from '/@/views/sales/Supplier/components/bankModal.vue'; + import { getDocCpList, getDictionary } from '/@/api/sales/Customer'; + import certificateModal from '/@/views/sales/Customer/components/certificateModal.vue'; + import contactModal from '/@/views/sales/Customer/components/contactModal.vue'; + import bankModal from '/@/views/sales/Customer/components/bankModal.vue'; import { useModal } from '/@/components/Modal'; import { addLngSupplier,updateLngSupplier,getLngSupplier } from '/@/api/supplier/Supplier'; import dayjs from 'dayjs'; @@ -282,8 +282,8 @@ const rules: Record = { - cuSname: [{ required: true, message: "该项为必填项", trigger: 'change' }], - cuMcode: [{ required: true, message: "该项为必填项", trigger: 'change' }], + suSname: [{ required: true, message: "该项为必填项", trigger: 'change' }], + suMcode: [{ required: true, message: "该项为必填项", trigger: 'change' }], dI: [{ required: true, message: "该项为必填项", trigger: 'change' }], cuName: [{ required: true, message: "该项为必填项", trigger: 'change'}], natureCode: [{ required: true, message: "该项为必填项", trigger: 'change'}],