Compare commits

..

No commits in common. '247c6ed4a09d267dbaf06995c26a450068af0977' and '769c90195457935e9ced0f198f46217eec60425f' have entirely different histories.

  1. 18
      src/api/clue/sign.js
  2. 6
      src/components/SSTable/index.vue
  3. 49
      src/views/Clue/Order/Comp/DialogAfterSaleAudit.vue
  4. 49
      src/views/Clue/Order/Comp/DialogBatchAudit.vue
  5. 223
      src/views/Clue/Order/Comp/MallOrderList.vue
  6. 63
      src/views/Clue/Order/Comp/MallSettle.vue
  7. 56
      src/views/Clue/Order/Comp/SchoolSettle.vue
  8. 8
      src/views/Clue/Pool/Comp/DialogClue.vue
  9. 40
      src/views/Clue/Pool/Comp/DialogSuccess.vue
  10. 2
      src/views/Clue/Pool/index.vue
  11. 5
      src/views/SchoolManagement/Class/Comp/DialogClass.vue
  12. 11
      src/views/SchoolManagement/Class/index.vue

@ -29,21 +29,3 @@ export const signAddPay = async (data) => {
export const getSignExtraPayList = async (params) => { export const getSignExtraPayList = async (params) => {
return await request.get({ url: '/admin-api/crm/sign/extra-pay/get', params }) return await request.get({ url: '/admin-api/crm/sign/extra-pay/get', params })
} }
// 安装状态修改
export const updateInstallStatus = (signIdList, installStatus) => {
const data = {
signIdList,
installStatus
}
return request.post({ url: '/admin-api/crm/sign/install-status/batchSave', data: data })
}
// 修改生产状态
export const updateProduceStatus = (data) => {
return request.put({ url: '/admin-api/crm/sign-prodcut/update', data: data })
}
export const updateProduceSort = (data) => {
return request.post({ url: '/admin-api/crm/sign-prodcut/adjust/sort', data: data })
}

@ -3,8 +3,6 @@
<div class="flex"> <div class="flex">
<el-table <el-table
:data="tableObject.tableList" :data="tableObject.tableList"
:row-key="rowkey"
:expand-row-keys="expandRowKeys"
border border
style="flex: 1" style="flex: 1"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@ -60,9 +58,7 @@ import { useRoute } from 'vue-router'
const props = defineProps({ const props = defineProps({
tableObject: { type: Object, default: () => ({ tableList: [] }) }, tableObject: { type: Object, default: () => ({ tableList: [] }) },
tableColumns: { type: Array, default: () => [] }, tableColumns: { type: Array, default: () => [] }
rowkey: { type: String, default: 'id' },
expandRowKeys: { type: Array, default: () => [] }
}) })
const emit = defineEmits(['update:tableObject', 'getList', 'getCheckedColumns', 'selection-change']) const emit = defineEmits(['update:tableObject', 'getList', 'getCheckedColumns', 'selection-change'])

@ -1,39 +1,16 @@
<template> <template>
<Dialog :title="dialogTitle" v-model="dialogVisible" width="800px"> <Dialog :title="dialogTitle" v-model="dialogVisible" width="800px">
<Descriptions :data="orderInfo" :schema="schema" :columns="2" labelWidth="130px" /> <Descriptions :data="orderInfo" :schema="schema" :columns="2" labelWidth="130px" />
<el-form <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
ref="formRef" <el-form-item label="状态" prop="state">
v-loading="formLoading" <el-radio-group v-model="formData.state">
:rules="ruels" <el-radio :label="3"> 通过 </el-radio>
:model="formData" <el-radio :label="4"> 驳回 </el-radio>
label-width="80px" </el-radio-group>
> </el-form-item>
<el-row :gutter="20"> <el-form-item label="备注" prop="remark">
<el-col :span="12" :offset="0"> <Editor v-model:modelValue="formData.remark" />
<el-form-item label="状态" prop="state"> </el-form-item>
<el-radio-group v-model="formData.state">
<el-radio :label="3"> 通过 </el-radio>
<el-radio :label="4"> 驳回 </el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12" :offset="0">
<el-form-item label="审核日期" prop="checkTime">
<el-date-picker
v-model="formData.checkTime"
type="date"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
placeholder="选择日期"
/>
</el-form-item>
</el-col>
<el-col :span="24" :offset="0">
<el-form-item label="备注" prop="remark">
<Editor v-model:modelValue="formData.remark" />
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button> <el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button>
@ -43,7 +20,6 @@
</template> </template>
<script name="DialogAfterSaleAudit" setup> <script name="DialogAfterSaleAudit" setup>
import { auditAfterSale } from '@/api/clue/afterSale' import { auditAfterSale } from '@/api/clue/afterSale'
import { formatDate } from '@/utils/formatTime'
const message = useMessage() // const message = useMessage() //
@ -128,10 +104,6 @@ const formData = ref({
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
const ruels = {
checkTime: { required: true, message: '审核日期不可为空', trigger: 'blur,change' }
}
const orderInfo = ref({}) const orderInfo = ref({})
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (row) => { const open = async (row) => {
@ -168,7 +140,6 @@ const resetForm = (signId) => {
formData.value = { formData.value = {
saleId: signId, saleId: signId,
state: 3, state: 3,
checkTime: formatDate(new Date()),
remark: '' remark: ''
} }
formRef.value?.resetFields() formRef.value?.resetFields()

@ -1,38 +1,15 @@
<template> <template>
<Dialog :title="dialogTitle" v-model="dialogVisible" width="600px"> <Dialog :title="dialogTitle" v-model="dialogVisible" width="600px">
<el-form <el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
ref="formRef" <el-form-item label="状态" prop="state">
v-loading="formLoading" <el-radio-group v-model="formData.state">
:rules="ruels" <el-radio :label="3"> 通过 </el-radio>
:model="formData" <el-radio :label="4"> 驳回 </el-radio>
label-width="80px" </el-radio-group>
> </el-form-item>
<el-row :gutter="20"> <el-form-item label="备注" prop="remark">
<el-col :span="12" :offset="0"> <Editor v-model:modelValue="formData.remark" />
<el-form-item label="状态" prop="state"> </el-form-item>
<el-radio-group v-model="formData.state">
<el-radio :label="3"> 通过 </el-radio>
<el-radio :label="4"> 驳回 </el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12" :offset="0">
<el-form-item label="审核日期" prop="checkTime">
<el-date-picker
v-model="formData.checkTime"
type="date"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
placeholder="选择日期"
/>
</el-form-item>
</el-col>
<el-col :span="24" :offset="0">
<el-form-item label="备注" prop="remark">
<Editor v-model:modelValue="formData.remark" />
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<template #footer> <template #footer>
<el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button> <el-button :disabled="formLoading" type="primary" @click="submitForm"> </el-button>
@ -43,7 +20,6 @@
<script name="DialogAfterSaleAudit" setup> <script name="DialogAfterSaleAudit" setup>
import { batchAuditAfterSale } from '@/api/clue/afterSale' import { batchAuditAfterSale } from '@/api/clue/afterSale'
import { batchAuditPayment } from '@/api/clue/payment' import { batchAuditPayment } from '@/api/clue/payment'
import { formatDate } from '@/utils/formatTime'
const message = useMessage() // const message = useMessage() //
@ -56,10 +32,6 @@ const formData = ref({
remark: '' remark: ''
}) })
const formRef = ref() // Ref const formRef = ref() // Ref
const ruels = {
checkTime: { required: true, message: '审核日期不可为空', trigger: 'blur,change' }
}
const formType = ref('aftersale') const formType = ref('aftersale')
const titleMap = { const titleMap = {
aftersale: '批量售后审核', aftersale: '批量售后审核',
@ -107,7 +79,6 @@ const resetForm = (ids) => {
formData.value = { formData.value = {
payIds: ids, payIds: ids,
saleIds: ids, saleIds: ids,
checkTime: formatDate(new Date()),
state: 3, state: 3,
remark: '' remark: ''
} }

@ -52,13 +52,6 @@
<template #actionMore> <template #actionMore>
<el-button @click="getTableList" v-hasPermi="['clue:order:search']"> 搜索 </el-button> <el-button @click="getTableList" v-hasPermi="['clue:order:search']"> 搜索 </el-button>
<el-button @click="resetQuery" v-hasPermi="['clue:order:reset']"> 重置 </el-button> <el-button @click="resetQuery" v-hasPermi="['clue:order:reset']"> 重置 </el-button>
<el-button
type="primary"
@click="handleBatchUpdateInstall"
v-hasPermi="['clue:order:batch-update-install']"
>
批量修改安装状态
</el-button>
</template> </template>
</Search> </Search>
</div> </div>
@ -68,89 +61,58 @@
class="mt-10px" class="mt-10px"
v-model:tableObject="tableObject" v-model:tableObject="tableObject"
:tableColumns="allSchemas.tableColumns" :tableColumns="allSchemas.tableColumns"
rowkey="signId"
:expandRowKeys="expendRows"
@get-list="getTableList" @get-list="getTableList"
@get-checked-columns="getCheckedColumns" @get-checked-columns="getCheckedColumns"
@selection-change="handleSelectionChange"
> >
<el-table-column type="selection" width="60" />
<el-table-column type="expand"> <el-table-column type="expand">
<template #default="{ row }"> <template #default="{ row }">
<div class="p-10px flex justify-center"> <div class="p-10px flex justify-center">
<VueDraggable <el-table :data="row.signProducts" stripe style="width: 900px">
target="tbody" <el-table-column prop="productName" label="成交产品" />
v-model="row.signProducts" <el-table-column prop="specsName" label="产品规格" width="100px" />
:animation="150" <el-table-column prop="signNum" label="成交数量" width="90px" />
@end="onDragEnd" <el-table-column prop="remark" label="成交备注" />
style="width: 100%" <el-table-column label="发货状态" prop="sendState" width="90px">
> <template #default="scope">
<el-table <el-tag
:data="row.signProducts" :type="scope.row.sendState == '待发货' ? 'danger' : 'success'"
row-key="id" size="small"
stripe >
style="width: 80%; margin: 0 auto" {{ scope.row.sendState }}
> </el-tag>
<el-table-column prop="productName" label="成交产品" /> </template>
<el-table-column prop="specsName" label="产品规格" /> </el-table-column>
<el-table-column prop="signNum" label="成交数量" width="90px" /> <el-table-column label="发货备注" width="100px">
<el-table-column prop="remark" label="成交备注" width="100px" /> <template #default="scope">
<el-table-column label="生产状态" width="160px"> <el-popover
<template #default="scope"> placement="top"
<el-switch width="500px"
v-model="scope.row.isProduced" trigger="click"
:active-value="true" v-if="scope.row.warehouseName && scope.row.sendRemark"
:inactive-value="false" >
active-text="已生产" <template #reference>
inactive-text="待生产" <el-button type="primary" style="padding: 0" text>点击查看</el-button>
:disabled="!checkPermi(['clue:order:update-produce'])" </template>
size="small" <div v-dompurify-html="scope.row.sendRemark"></div>
@change="handleChangeProdoce(scope.row)" </el-popover>
/> </template>
</template> </el-table-column>
</el-table-column> <el-table-column label="操作" width="100px">
<el-table-column label="发货状态" prop="sendState" width="90px"> <template #default="scope">
<template #default="scope"> <el-button
<el-tag type="primary"
:type="scope.row.sendState == '待发货' ? 'danger' : 'success'" class="mr-10px"
size="small" link
> :disabled="scope.row.sendState == '已发货'"
{{ scope.row.sendState }} style="padding: 0; margin-left: 0"
</el-tag> v-hasPermi="['clue:order:send']"
</template> @click="handleDelivery(scope.row)"
</el-table-column> >
<el-table-column label="发货备注" width="100px"> 发货
<template #default="scope"> </el-button>
<el-popover </template>
placement="top" </el-table-column>
width="500px" </el-table>
trigger="click"
v-if="scope.row.warehouseName && scope.row.sendRemark"
>
<template #reference>
<el-button type="primary" style="padding: 0" text>点击查看</el-button>
</template>
<div v-dompurify-html="scope.row.sendRemark"></div>
</el-popover>
</template>
</el-table-column>
<el-table-column label="操作" width="100px">
<template #default="scope">
<el-button
type="primary"
class="mr-10px"
link
:disabled="scope.row.sendState == '已发货'"
style="padding: 0; margin-left: 0"
v-hasPermi="['clue:order:send']"
@click="handleDelivery(scope.row)"
>
发货
</el-button>
</template>
</el-table-column>
</el-table>
</VueDraggable>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@ -255,9 +217,6 @@ import DialogDelivery from './DialogDelivery.vue'
import { removeNullField } from '@/utils' import { removeNullField } from '@/utils'
import { formatDate } from '@/utils/formatTime' import { formatDate } from '@/utils/formatTime'
import { ElMessageBox, ElOption, ElSelect } from 'element-plus'
import { VueDraggable } from 'vue-draggable-plus'
import { checkPermi } from '@/utils/permission'
const userOptions = ref([]) const userOptions = ref([])
const allUserOptions = ref([]) const allUserOptions = ref([])
@ -403,96 +362,6 @@ const deliveryDialog = ref()
function handleDelivery(row) { function handleDelivery(row) {
deliveryDialog.value.open(row) deliveryDialog.value.open(row)
} }
const batchIds = ref([])
function handleSelectionChange(val) {
batchIds.value = val.map((it) => it.signId)
}
const selectedValue = ref(undefined)
const installOptions = [
{ label: '待安装', value: 1 },
{ label: '已安装', value: 2 },
{ label: '无需安装', value: 3 }
]
const select = () =>
h(
ElSelect,
{
modelValue: selectedValue.value,
placeholder: '新状态',
'onUpdate:modelValue': (val) => {
selectedValue.value = val
}
},
() =>
installOptions.map((item) => {
return h(ElOption, { label: item.label, value: item.value })
})
)
function handleBatchUpdateInstall() {
if (batchIds.value.length) {
ElMessageBox({
title: '是否确认修改安装状态?',
message: select,
showCancelButton: true,
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(async (action) => {
//
if (action == 'confirm') {
try {
//
await SignApi.updateInstallStatus(batchIds.value, selectedValue.value)
message.success('修改成功')
//
await getTableList()
} catch (err) {
//
console.log(err)
}
}
})
} else {
message.info('请选择表格行')
}
}
async function handleChangeProdoce(row) {
try {
//
await message.confirm('确认要修改生产状态吗?')
//
await SignApi.updateProduceStatus({
signId: row.signId,
id: row.id,
isProduced: row.isProduced
})
message.success('修改成功')
//
getTableList()
} catch {
//
row.isProduced = !row.isProduced
}
}
const expendRows = ref([])
async function onDragEnd(ev) {
try {
expendRows.value = [ev.data.signId]
const list = tableObject.value.tableList.find((it) => it.signId == ev.data.signId).signProducts
await SignApi.updateProduceSort(list.map((it) => it.id))
message.success('修改成功')
//
getTableList()
} catch (error) {
console.log(error)
getTableList()
}
}
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>

@ -2,44 +2,22 @@
<div> <div>
<el-form :model="searchForm" label-width="0" inline> <el-form :model="searchForm" label-width="0" inline>
<el-form-item> <el-form-item>
<el-input <el-input v-model="searchForm.signId" placeholder="成交单号" clearable />
v-model="searchForm.signId"
placeholder="成交单号"
clearable
style="width: 120px"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input v-model="searchForm.name" placeholder="线索名称" clearable style="width: 120px" /> <el-input v-model="searchForm.name" placeholder="线索名称" clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input <el-input v-model="searchForm.phone" placeholder="联系方式" clearable />
v-model="searchForm.phone"
placeholder="联系方式"
clearable
style="width: 120px"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select v-model="searchForm.settlementType" placeholder="结算类型" clearable filterable>
v-model="searchForm.settlementType"
placeholder="结算类型"
clearable
filterable
style="width: 120px"
>
<el-option label="货款" value="货款" /> <el-option label="货款" value="货款" />
<el-option label="其他支出" value="其他支出" /> <el-option label="其他支出" value="其他支出" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select v-model="searchForm.signUser" placeholder="登记人" clearable filterable>
v-model="searchForm.signUser"
placeholder="登记人"
clearable
filterable
style="width: 120px"
>
<el-option <el-option
v-for="item in userOptions" v-for="item in userOptions"
:key="item.id" :key="item.id"
@ -57,19 +35,6 @@
range-separator="-" range-separator="-"
start-placeholder="成交日期" start-placeholder="成交日期"
end-placeholder="成交日期" end-placeholder="成交日期"
style="width: 240px"
/>
</el-form-item>
<el-form-item>
<el-date-picker
v-model="searchForm.createDate"
type="daterange"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
range-separator="-"
start-placeholder="支出日期"
end-placeholder="支出日期"
style="width: 240px"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -79,7 +44,6 @@
filterable filterable
clearable clearable
@change="searchForm.signSpecs = undefined" @change="searchForm.signSpecs = undefined"
style="width: 150px"
> >
<el-option <el-option
v-for="item in prodOptions" v-for="item in prodOptions"
@ -96,7 +60,6 @@
filterable filterable
clearable clearable
:disabled="!searchForm.signProduct" :disabled="!searchForm.signProduct"
style="width: 120px"
> >
<el-option <el-option
v-for="item in specsOptions(searchForm.signProduct)" v-for="item in specsOptions(searchForm.signProduct)"
@ -107,13 +70,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select v-model="searchForm.supplier" placeholder="选择供应商" filterable clearable>
v-model="searchForm.supplier"
placeholder="选择供应商"
filterable
clearable
style="width: 120px"
>
<el-option <el-option
v-for="item in supplierOptions" v-for="item in supplierOptions"
:key="item.value" :key="item.value"
@ -157,12 +114,6 @@
<el-table-column prop="phone" label="联系方式" width="120px" /> <el-table-column prop="phone" label="联系方式" width="120px" />
<el-table-column prop="signUserName" label="登记人" min-width="90" /> <el-table-column prop="signUserName" label="登记人" min-width="90" />
<el-table-column prop="dealDate" label="成交日期" width="120px" :formatter="dateFormatter" /> <el-table-column prop="dealDate" label="成交日期" width="120px" :formatter="dateFormatter" />
<el-table-column
prop="createTime"
label="支出日期"
width="120px"
:formatter="dateFormatter"
/>
<el-table-column prop="signProduct" label="成交产品" min-width="150px" /> <el-table-column prop="signProduct" label="成交产品" min-width="150px" />
<el-table-column prop="signSpecs" label="成交规格" min-width="150px" /> <el-table-column prop="signSpecs" label="成交规格" min-width="150px" />
<el-table-column prop="supplier" label="供应商" min-width="150px" /> <el-table-column prop="supplier" label="供应商" min-width="150px" />
@ -248,7 +199,6 @@ const searchForm = ref({
phone: undefined, phone: undefined,
signUser: undefined, signUser: undefined,
dealDate: [], dealDate: [],
createDate: [],
signProduct: undefined, signProduct: undefined,
signSpecs: undefined, signSpecs: undefined,
signId: undefined, signId: undefined,
@ -265,7 +215,6 @@ function handleReset() {
phone: undefined, phone: undefined,
signUser: undefined, signUser: undefined,
dealDate: [], dealDate: [],
createDate: [],
signProduct: undefined, signProduct: undefined,
signSpecs: undefined, signSpecs: undefined,
signId: undefined, signId: undefined,

@ -2,44 +2,22 @@
<div> <div>
<el-form :model="searchForm" label-width="0" inline> <el-form :model="searchForm" label-width="0" inline>
<el-form-item> <el-form-item>
<el-input <el-input v-model="searchForm.signId" placeholder="成交单号" clearable />
v-model="searchForm.signId"
placeholder="成交单号"
clearable
style="width: 120px"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input v-model="searchForm.name" placeholder="线索名称" clearable style="width: 120px" /> <el-input v-model="searchForm.name" placeholder="线索名称" clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input <el-input v-model="searchForm.phone" placeholder="联系方式" clearable />
v-model="searchForm.phone"
placeholder="联系方式"
clearable
style="width: 120px"
/>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select v-model="searchForm.settlementType" placeholder="结算类型" clearable filterable>
v-model="searchForm.settlementType"
placeholder="结算类型"
clearable
filterable
style="width: 120px"
>
<el-option label="报名费" value="报名费" /> <el-option label="报名费" value="报名费" />
<el-option label="其他支出" value="其他支出" /> <el-option label="其他支出" value="其他支出" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select <el-select v-model="searchForm.signUser" placeholder="登记人" clearable filterable>
v-model="searchForm.signUser"
placeholder="登记人"
clearable
filterable
style="width: 120px"
>
<el-option <el-option
v-for="item in userOptions" v-for="item in userOptions"
:key="item.id" :key="item.id"
@ -57,19 +35,6 @@
range-separator="-" range-separator="-"
start-placeholder="成交日期" start-placeholder="成交日期"
end-placeholder="成交日期" end-placeholder="成交日期"
style="width: 240px"
/>
</el-form-item>
<el-form-item>
<el-date-picker
v-model="searchForm.createDate"
type="daterange"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
range-separator="-"
start-placeholder="支出日期"
end-placeholder="支出日期"
style="width: 240px"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -79,7 +44,6 @@
filterable filterable
clearable clearable
@change="changeSchool" @change="changeSchool"
style="width: 120px"
> >
<el-option <el-option
v-for="item in schoolOptions" v-for="item in schoolOptions"
@ -97,7 +61,6 @@
clearable clearable
:disabled="!searchForm.signSchool" :disabled="!searchForm.signSchool"
@change="changePlace" @change="changePlace"
style="width: 120px"
> >
<el-option <el-option
v-for="item in placeOptions" v-for="item in placeOptions"
@ -114,7 +77,6 @@
placeholder="选择班型" placeholder="选择班型"
filterable filterable
clearable clearable
style="width: 120px"
> >
<el-option <el-option
v-for="item in classOptions" v-for="item in classOptions"
@ -158,12 +120,6 @@
<el-table-column prop="phone" label="联系方式" width="120px" /> <el-table-column prop="phone" label="联系方式" width="120px" />
<el-table-column prop="signUserName" label="登记人" min-width="90" /> <el-table-column prop="signUserName" label="登记人" min-width="90" />
<el-table-column prop="dealDate" label="成交日期" width="120px" :formatter="dateFormatter" /> <el-table-column prop="dealDate" label="成交日期" width="120px" :formatter="dateFormatter" />
<el-table-column
prop="createTime"
label="支出日期"
width="120px"
:formatter="dateFormatter"
/>
<el-table-column prop="signSchool" label="成交驾校" min-width="150px" /> <el-table-column prop="signSchool" label="成交驾校" min-width="150px" />
<el-table-column prop="signPlace" label="成交场地" min-width="150px" /> <el-table-column prop="signPlace" label="成交场地" min-width="150px" />
<el-table-column prop="signClass" label="成交班型" min-width="150px" /> <el-table-column prop="signClass" label="成交班型" min-width="150px" />
@ -250,7 +206,6 @@ const searchForm = ref({
phone: undefined, phone: undefined,
signUser: undefined, signUser: undefined,
dealDate: [], dealDate: [],
createDate: [],
signSchool: undefined, signSchool: undefined,
signPlace: undefined, signPlace: undefined,
signClass: undefined, signClass: undefined,
@ -267,7 +222,6 @@ function handleReset() {
phone: undefined, phone: undefined,
signUser: undefined, signUser: undefined,
dealDate: [], dealDate: [],
createDate: [],
signSchool: undefined, signSchool: undefined,
signPlace: undefined, signPlace: undefined,
signClass: undefined, signClass: undefined,

@ -33,7 +33,7 @@
v-model="row.nextFollowTime" v-model="row.nextFollowTime"
type="date" type="date"
placeholder="选择日期时间" placeholder="选择日期时间"
:disabled="row.userId != useUserStore().getUser.id" :disabled="!row.editable"
format="YYYY-MM-DD" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" value-format="YYYY-MM-DD"
style="width: 100%" style="width: 100%"
@ -47,7 +47,7 @@
type="textarea" type="textarea"
:autoSize="{ minRows: 2 }" :autoSize="{ minRows: 2 }"
placeholder="输入跟进内容" placeholder="输入跟进内容"
:disabled="row.userId != useUserStore().getUser.id" :disabled="!row.editable"
/> />
</template> </template>
</el-table-column> </el-table-column>
@ -364,8 +364,8 @@ async function handleSave() {
const data = await ClueApi.createClue(params) const data = await ClueApi.createClue(params)
message.success(data) message.success(data)
} else { } else {
await ClueApi.updateClue(params) const data = await ClueApi.updateClue(params)
message.success('修改成功') message.success(data)
} }
dialogVisible.value = false dialogVisible.value = false
// //

@ -118,31 +118,18 @@
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<template v-if="appStore.getAppInfo?.instanceType == 1"> <el-col :span="8" :offset="0" v-if="appStore.getAppInfo?.instanceType == 1">
<el-col :span="8" :offset="0"> <el-form-item label="接待人" prop="receiver">
<el-form-item label="接待人" prop="receiver"> <el-select v-model="form.receiver" placeholder="选择接待人" clearable filterable>
<el-select v-model="form.receiver" placeholder="选择接待人" clearable filterable> <el-option
<el-option v-for="item in allUserOptions"
v-for="item in allUserOptions" :key="item.id"
:key="item.id" :label="item.nickname"
:label="item.nickname" :value="item.id"
:value="item.id" />
/> </el-select>
</el-select> </el-form-item>
</el-form-item> </el-col>
</el-col>
</template>
<template v-else>
<el-col :span="8" :offset="0">
<el-form-item label="安装状态" prop="installStatus">
<el-select v-model="form.installStatus">
<el-option label="待安装" :value="1" />
<el-option label="已安装" :value="2" />
<el-option label="无需安装" :value="3" />
</el-select>
</el-form-item>
</el-col>
</template>
<el-col <el-col
:span="fieldItem.component == 'Editor' ? 24 : 8" :span="fieldItem.component == 'Editor' ? 24 : 8"
:offset="0" :offset="0"
@ -475,8 +462,7 @@ async function resetForm(id) {
isCompanyReceipts: data.configValue == 'true', isCompanyReceipts: data.configValue == 'true',
receiver: undefined, receiver: undefined,
extraPay: [], extraPay: [],
signProducts: [], signProducts: []
installStatus: 3
} }
} }

@ -14,7 +14,7 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="2"> <el-tab-pane name="2">
<template #label> <template #label>
<Tooltip message="下次跟进时间在今日之前的未成交线索" /> <Tooltip message="下次跟进时间在今日之前的未成交线索" />
<el-badge v-if="clueCount.followNum" :value="clueCount.followNum" :max="9999"> <el-badge v-if="clueCount.followNum" :value="clueCount.followNum" :max="9999">
<span class="ml-3px">待跟进</span> <span class="ml-3px">待跟进</span>
</el-badge> </el-badge>

@ -474,15 +474,12 @@ const opts = ref({
}) })
/** 打开弹窗 */ /** 打开弹窗 */
const open = async (type, id, sp) => { const open = async (type, id) => {
dialogVisible.value = true dialogVisible.value = true
dialogTitle.value = type == 'create' ? '新增班型' : '修改班型' dialogTitle.value = type == 'create' ? '新增班型' : '修改班型'
formType.value = type formType.value = type
currentTab.value = 'base' currentTab.value = 'base'
resetForm() resetForm()
if (type == 'create' && sp && sp.length) {
formData.value.schPlace = sp
}
if (!opts.value.length) { if (!opts.value.length) {
const arr = await ClassApi.getCommissionParams() const arr = await ClassApi.getCommissionParams()
arr.map((item) => { arr.map((item) => {

@ -47,23 +47,20 @@
plain plain
@click="handleOpenDialog('create', null)" @click="handleOpenDialog('create', null)"
v-hasPermi="['school:class:add']" v-hasPermi="['school:class:add']"
>新增</el-button
> >
新增
</el-button>
<el-button <el-button
type="danger" type="danger"
@click="handleBatchDelete([])" @click="handleBatchDelete([])"
v-hasPermi="['school:class:batch-delete']" v-hasPermi="['school:class:batch-delete']"
>批量删除</el-button
> >
批量删除
</el-button>
<el-button <el-button
type="warning" type="warning"
@click="handleBatchStatus" @click="handleBatchStatus"
v-hasPermi="['school:class:batch-status']" v-hasPermi="['school:class:batch-status']"
>批量启/停用</el-button
> >
批量启/停用
</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -238,7 +235,7 @@ async function getList() {
const ClassDialog = ref() const ClassDialog = ref()
function handleOpenDialog(type, id = null) { function handleOpenDialog(type, id = null) {
ClassDialog.value.open(type, id, searchForm.value.schPlace) ClassDialog.value.open(type, id)
} }
function handleReset() { function handleReset() {

Loading…
Cancel
Save