diff --git a/src/api/clue/afterSale.js b/src/api/clue/afterSale.js new file mode 100644 index 0000000..685289a --- /dev/null +++ b/src/api/clue/afterSale.js @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +// 查询(精简)列表 +export const getAfterSaleList = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-after-sale/list', params }) +} + +// 查询(精简)列表 +export const getAfterSalePage = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-after-sale/page', params }) +} + +// 新增 +export const createAfterSale = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-after-sale/create', data }) +} + +// 审核 +export const auditAfterSale = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-after-sale/check', data }) +} + +export const batchAuditAfterSale = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-after-sale/batch/check', data }) +} + +// 撤销 +export const cancelApplyAfterSale = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-after-sale/revoke', params: data }) +} + +// 查询详情 +export const getAfterSaleDetail = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-after-sale/get', params }) +} diff --git a/src/api/clue/index.js b/src/api/clue/index.js index 3e2def3..85e4464 100644 --- a/src/api/clue/index.js +++ b/src/api/clue/index.js @@ -49,3 +49,8 @@ export const getOpearateRecord = async (params) => { export const getPublicClue = async (data) => { return await request.put({ url: '/admin-api/crm/sch-clue/public/save', data }) } + +// 获得线索跟进用户信息 +export const getFollowUserList = async (params) => { + return await request.get({ url: '/admin-api/crm/sch-clue/get-follow-user', params }) +} diff --git a/src/api/clue/payment.js b/src/api/clue/payment.js new file mode 100644 index 0000000..4a63fbf --- /dev/null +++ b/src/api/clue/payment.js @@ -0,0 +1,35 @@ +import request from '@/config/axios' + +// 查询(精简)列表 +export const getPaymentList = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-pay-record/list', params }) +} + +// 查询(精简)列表 +export const getPaymentPage = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-pay-record/page', params }) +} + +// 新增 +export const createPayment = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-pay-record/create', data }) +} + +// 审核 +export const auditPayment = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-pay-record/check', data }) +} + +export const batchAuditPayment = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-pay-record/batch/check', data }) +} + +// 撤销 +export const cancelApplyPayment = async (data) => { + return await request.post({ url: '/admin-api/crm/sign-pay-record/revoke', params: data }) +} + +// 查询详情 +export const getPaymentDetail = async (params) => { + return await request.get({ url: '/admin-api/crm/sign-pay-record/get', params }) +} diff --git a/src/api/clue/sign.js b/src/api/clue/sign.js index 0a3fbdf..acaf215 100644 --- a/src/api/clue/sign.js +++ b/src/api/clue/sign.js @@ -14,3 +14,8 @@ export const getSign = async (id) => { export const createSign = async (data) => { return await request.post({ url: '/admin-api/crm/sign/create', data: data }) } + +// 取消登记 +export const cancelDeal = async (id) => { + return await request.delete({ url: '/admin-api/crm/sign/delete?id=' + id }) +} diff --git a/src/api/system/set/index.js b/src/api/system/set/index.js index 10d7c18..2f83861 100644 --- a/src/api/system/set/index.js +++ b/src/api/system/set/index.js @@ -7,5 +7,10 @@ export const getConfigByConfigKey = (params) => { // 保存配置项 export const updateConfig = (data) => { - return request.put({ url: '/admin-api/crm/config/update', data }) + return request.put({ url: '/admin-api/crm/config/batchUpdateConfigValue', data }) +} + +// 根据模块获取配置列表 +export const getConfigList = (params) => { + return request.get({ url: '/admin-api/crm/config/query', params }) } diff --git a/src/components/Descriptions/src/Descriptions.vue b/src/components/Descriptions/src/Descriptions.vue index 5577839..d11d4ee 100644 --- a/src/components/Descriptions/src/Descriptions.vue +++ b/src/components/Descriptions/src/Descriptions.vue @@ -27,7 +27,8 @@ const props = defineProps({ data: { type: Object as PropType, default: () => ({}) - } + }, + defaultShow: propTypes.bool.def(true) }) const { getPrefixCls } = useDesign() @@ -57,7 +58,7 @@ const getBindItemValue = (item: DescriptionsSchema) => { } // 折叠 -const show = ref(true) +const show = ref(props.defaultShow) const toggleClick = () => { if (props.collapse) { diff --git a/src/components/Form/src/Form.vue b/src/components/Form/src/Form.vue index 7fc5dd1..f78267d 100644 --- a/src/components/Form/src/Form.vue +++ b/src/components/Form/src/Form.vue @@ -51,7 +51,8 @@ export default defineComponent({ // 表单label宽度 labelWidth: propTypes.oneOfType([String, Number]).def('auto'), // 是否 loading 数据中 add by 芋艿 - vLoading: propTypes.bool.def(false) + vLoading: propTypes.bool.def(false), + inlineBlock: propTypes.bool.def(false) }, emits: ['register'], setup(props, { slots, expose, emit }) { @@ -289,6 +290,7 @@ export default defineComponent({ model={props.isCustom ? props.model : formModel} class={prefixCls} v-loading={props.vLoading} + style={props.inlineBlock ? 'display: inline' : ''} > {{ // 如果需要自定义,就什么都不渲染,而是提供默认插槽 diff --git a/src/components/Search/src/Search.vue b/src/components/Search/src/Search.vue index a9f2ebc..c60109b 100644 --- a/src/components/Search/src/Search.vue +++ b/src/components/Search/src/Search.vue @@ -38,6 +38,7 @@ const props = defineProps({ // 伸缩的界限字段 expandField: propTypes.string.def(''), inline: propTypes.bool.def(true), + inlineBlock: propTypes.bool.def(false), model: { type: Object as PropType, default: () => ({}) @@ -154,6 +155,7 @@ initSearch()
- + - - 使用 - 不使用 + + + {{ item.name }} + - - - 展示所有 - 仅展示本人 + + + + + {{ item.name }} + @@ -23,23 +44,42 @@ diff --git a/src/views/Basic/GeneralSet/Comp/BSSalerComission.vue b/src/views/Basic/GeneralSet/Comp/BSSalerComission.vue index 7f0842a..3005ee0 100644 --- a/src/views/Basic/GeneralSet/Comp/BSSalerComission.vue +++ b/src/views/Basic/GeneralSet/Comp/BSSalerComission.vue @@ -1,16 +1,31 @@ diff --git a/src/views/Clue/Order/Comp/AfterSales.vue b/src/views/Clue/Order/Comp/AfterSales.vue new file mode 100644 index 0000000..3e5736a --- /dev/null +++ b/src/views/Clue/Order/Comp/AfterSales.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/Clue/Order/Comp/Delivery.vue b/src/views/Clue/Order/Comp/Delivery.vue new file mode 100644 index 0000000..e69de29 diff --git a/src/views/Clue/Order/Comp/DialogAfterSale.vue b/src/views/Clue/Order/Comp/DialogAfterSale.vue new file mode 100644 index 0000000..d943a54 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogAfterSale.vue @@ -0,0 +1,122 @@ + + + + + diff --git a/src/views/Clue/Order/Comp/DialogAfterSaleAudit.vue b/src/views/Clue/Order/Comp/DialogAfterSaleAudit.vue new file mode 100644 index 0000000..d2b7b0e --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogAfterSaleAudit.vue @@ -0,0 +1,135 @@ + + diff --git a/src/views/Clue/Order/Comp/DialogAfterSaleDetail.vue b/src/views/Clue/Order/Comp/DialogAfterSaleDetail.vue new file mode 100644 index 0000000..66f46ba --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogAfterSaleDetail.vue @@ -0,0 +1,137 @@ + + diff --git a/src/views/Clue/Order/Comp/DialogBatchAudit.vue b/src/views/Clue/Order/Comp/DialogBatchAudit.vue new file mode 100644 index 0000000..4204057 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogBatchAudit.vue @@ -0,0 +1,87 @@ + + diff --git a/src/views/Clue/Order/Comp/DialogFeeback.vue b/src/views/Clue/Order/Comp/DialogFeeback.vue new file mode 100644 index 0000000..72d4819 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogFeeback.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/src/views/Clue/Order/Comp/DialogFeebackAudit.vue b/src/views/Clue/Order/Comp/DialogFeebackAudit.vue new file mode 100644 index 0000000..e2ec956 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogFeebackAudit.vue @@ -0,0 +1,125 @@ + + diff --git a/src/views/Clue/Order/Comp/DialogFeebackDetail.vue b/src/views/Clue/Order/Comp/DialogFeebackDetail.vue new file mode 100644 index 0000000..3f16d12 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogFeebackDetail.vue @@ -0,0 +1,127 @@ + + diff --git a/src/views/Clue/Order/Comp/DialogOrder.vue b/src/views/Clue/Order/Comp/DialogOrder.vue new file mode 100644 index 0000000..6497ff6 --- /dev/null +++ b/src/views/Clue/Order/Comp/DialogOrder.vue @@ -0,0 +1,121 @@ + + + + + diff --git a/src/views/Clue/Order/Comp/OrderList.vue b/src/views/Clue/Order/Comp/OrderList.vue new file mode 100644 index 0000000..c3112f4 --- /dev/null +++ b/src/views/Clue/Order/Comp/OrderList.vue @@ -0,0 +1,367 @@ + + + + + diff --git a/src/views/Clue/Order/Comp/Reback.vue b/src/views/Clue/Order/Comp/Reback.vue new file mode 100644 index 0000000..74c6903 --- /dev/null +++ b/src/views/Clue/Order/Comp/Reback.vue @@ -0,0 +1,236 @@ + + + + + diff --git a/src/views/Clue/Order/index.vue b/src/views/Clue/Order/index.vue index c8b7b21..16bfd20 100644 --- a/src/views/Clue/Order/index.vue +++ b/src/views/Clue/Order/index.vue @@ -1,104 +1,28 @@ diff --git a/src/views/Clue/Pool/Comp/DialogSuccess.vue b/src/views/Clue/Pool/Comp/DialogSuccess.vue index beef045..2a9fb6e 100644 --- a/src/views/Clue/Pool/Comp/DialogSuccess.vue +++ b/src/views/Clue/Pool/Comp/DialogSuccess.vue @@ -1,11 +1,12 @@ @@ -187,6 +188,11 @@ async function getCurdSchemas() { loading.value = true try { const data = await getSimpleFieldList() + data.forEach((elem) => { + if (elem.field == 'followUser') { + elem.search.options = userOptions.value + } + }) allSchemas.value = useCrudSchemas(data).allSchemas } finally { loading.value = false @@ -314,8 +320,8 @@ const userOptions = ref([]) onMounted(() => { getUserOption().then((data) => { userOptions.value = data + getCurdSchemas() }) - getCurdSchemas() }) diff --git a/src/views/Clue/Set/Comp/ClueSend.vue b/src/views/Clue/Set/Comp/ClueSend.vue index 358973c..3315e3b 100644 --- a/src/views/Clue/Set/Comp/ClueSend.vue +++ b/src/views/Clue/Set/Comp/ClueSend.vue @@ -93,7 +93,7 @@ const loading = ref(false) const userList = ref([]) function setRowClass({ row }) { - return row.field == currentRowId.value ? 'current-row' : '' + return row.id == currentRowId.value ? 'current-row' : '' } const currentRowId = ref('') @@ -144,7 +144,7 @@ function resourceCheckedChange(val) { } function handleRowClick(row) { - currentRowId.value = row.ruleId + currentRowId.value = row.id form.value = { ...row } } diff --git a/src/views/Clue/Set/Comp/GeneralSet.vue b/src/views/Clue/Set/Comp/GeneralSet.vue index e2e1de8..9f0135c 100644 --- a/src/views/Clue/Set/Comp/GeneralSet.vue +++ b/src/views/Clue/Set/Comp/GeneralSet.vue @@ -1,21 +1,57 @@ diff --git a/src/views/Clue/Set/index.vue b/src/views/Clue/Set/index.vue index cdea82d..4af410f 100644 --- a/src/views/Clue/Set/index.vue +++ b/src/views/Clue/Set/index.vue @@ -10,20 +10,20 @@ - - + @@ -44,8 +44,8 @@ import FieldClue from './Comp/FieldClue.vue' import FieldOrder from './Comp/FieldOrder.vue' import ClueSource from './Comp/ClueSource.vue' -// import ClueGet from './Comp/ClueGet.vue' -// import ClueSend from './Comp/ClueSend.vue' +import ClueGet from './Comp/ClueGet.vue' +import ClueSend from './Comp/ClueSend.vue' // import MsgSend from './Comp/MsgSend.vue' import IntentionStatus from './Comp/IntentionStatus.vue' import ExtraFeeType from './Comp/ExtraFeeType.vue' diff --git a/src/views/Clue/Skill/index.vue b/src/views/Clue/Skill/index.vue index 731266c..ccf377d 100644 --- a/src/views/Clue/Skill/index.vue +++ b/src/views/Clue/Skill/index.vue @@ -11,9 +11,7 @@ /> - - 搜索 - + 搜索 重置 新增 diff --git a/src/views/Home/Index.vue b/src/views/Home/Index.vue index fb08edd..0f2b5e4 100644 --- a/src/views/Home/Index.vue +++ b/src/views/Home/Index.vue @@ -203,7 +203,7 @@ const getMonthlySaleRate = async () => { ) set(lineOptionsData, 'series', [ { - name: t('analysis.estimate'), + name: '个人成交率', smooth: true, type: 'line', data: data.map((v) => v.estimate), @@ -211,7 +211,7 @@ const getMonthlySaleRate = async () => { animationEasing: 'cubicInOut' }, { - name: t('analysis.actual'), + name: '平均成交率', smooth: true, type: 'line', itemStyle: {}, diff --git a/src/views/MiniMall/MallSet/Comp/GeneralSet.vue b/src/views/MiniMall/MallSet/Comp/GeneralSet.vue index 1258648..c9ced81 100644 --- a/src/views/MiniMall/MallSet/Comp/GeneralSet.vue +++ b/src/views/MiniMall/MallSet/Comp/GeneralSet.vue @@ -1,9 +1,21 @@