|
|
@@ -7,14 +7,12 @@ import { Table, TableColumn } from '@/components/Table'
|
|
|
import { ContentWrap } from '@/components/ContentWrap'
|
|
|
import { FormSchema } from '@/components/Form'
|
|
|
import { Search } from '@/components/Search'
|
|
|
-import { Dialog } from '@/components/Dialog'
|
|
|
import { searchTime } from '@/utils/searchTime'
|
|
|
import { searchOrder } from '@/api/order/types'
|
|
|
import { ElTabs, ElTabPane, ElButton, ElDivider, ElDrawer } from 'element-plus'
|
|
|
import Detail from './components/Detail.vue'
|
|
|
import Draft from './components/Draft.vue'
|
|
|
import addItem from './components/addItem.vue'
|
|
|
-import { SalespersonButtom } from '@/components/SalespersonList'
|
|
|
const { tableRegister, tableState, tableMethods } = useTable({
|
|
|
fetchDataApi: async () => {
|
|
|
const res = await getOrderList({
|
|
|
@@ -33,8 +31,6 @@ const { dataList, loading, total, currentPage, pageSize } = tableState
|
|
|
const { getList } = tableMethods
|
|
|
const dialogVisible = ref(false)
|
|
|
const dialogTitle = ref('')
|
|
|
-const showSalesperson = ref(false)
|
|
|
-
|
|
|
|
|
|
const tableColumns = reactive<TableColumn[]>([
|
|
|
{
|
|
|
@@ -53,7 +49,7 @@ const tableColumns = reactive<TableColumn[]>([
|
|
|
return (
|
|
|
<>
|
|
|
<div>昵称: {row.real_name}</div>
|
|
|
- <div>UID: {row.uid} </div>
|
|
|
+ <div>UID: {row.uid} </div>
|
|
|
<div>手机号: {row.phone}</div>
|
|
|
</>
|
|
|
)
|
|
|
@@ -61,75 +57,63 @@ const tableColumns = reactive<TableColumn[]>([
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- field: 'salesperson',
|
|
|
- label: '业务员',
|
|
|
- minWidth: 100,
|
|
|
- slots: {
|
|
|
- default: (data: any) => {
|
|
|
- const row = data.row
|
|
|
- if(row.salesperson && row.salesperson.id) {
|
|
|
- return (
|
|
|
- <>
|
|
|
- <div> {row.salesperson.name}</div>
|
|
|
- </>
|
|
|
- )
|
|
|
- }else {
|
|
|
- return (
|
|
|
- <>
|
|
|
- </>
|
|
|
- )
|
|
|
- }
|
|
|
-
|
|
|
+ field: 'salesperson',
|
|
|
+ label: '业务员',
|
|
|
+ minWidth: 100,
|
|
|
+ slots: {
|
|
|
+ default: (data: any) => {
|
|
|
+ const row = data.row
|
|
|
+ if (row.salesperson && row.salesperson.id) {
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <div> {row.salesperson.name}</div>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ return <></>
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
-{
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
field: 'designer',
|
|
|
label: '设计师',
|
|
|
minWidth: 100,
|
|
|
slots: {
|
|
|
default: (data: any) => {
|
|
|
const row = data.row
|
|
|
- if(row.designer && row.designer.id) {
|
|
|
- return (
|
|
|
- <>
|
|
|
- <div> {row.designer.name}</div>
|
|
|
- </>
|
|
|
- )
|
|
|
- }else {
|
|
|
- return (
|
|
|
- <>
|
|
|
- </>
|
|
|
- )
|
|
|
- }
|
|
|
-
|
|
|
+ if (row.designer && row.designer.id) {
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <div> {row.designer.name}</div>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ return <></>
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ {
|
|
|
+ field: 'worker',
|
|
|
+ label: '安装工',
|
|
|
+ minWidth: 100,
|
|
|
+ slots: {
|
|
|
+ default: (data: any) => {
|
|
|
+ const row = data.row
|
|
|
+ if (row.worker && row.worker.id) {
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <div> {row.worker.name}</div>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ return <></>
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
-
|
|
|
- {
|
|
|
- field: 'worker',
|
|
|
- label: '安装工',
|
|
|
- minWidth: 100,
|
|
|
- slots: {
|
|
|
- default: (data: any) => {
|
|
|
- const row = data.row
|
|
|
- if(row.worker && row.worker.id) {
|
|
|
- return (
|
|
|
- <>
|
|
|
- <div> {row.worker.name}</div>
|
|
|
- </>
|
|
|
- )
|
|
|
- }else {
|
|
|
- return (
|
|
|
- <>
|
|
|
- </>
|
|
|
- )
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
{
|
|
|
field: 'address',
|
|
|
label: '地址',
|
|
|
@@ -163,23 +147,28 @@ const tableColumns = reactive<TableColumn[]>([
|
|
|
align: 'center',
|
|
|
slots: {
|
|
|
default: (data: any) => {
|
|
|
- const row = data.row;
|
|
|
- if(row.add_item.length > 0 && row.add_item[0].status == 0) {
|
|
|
- return (
|
|
|
- <>
|
|
|
- <ElButton type="primary" link size="small" onClick={() => action('edit', row)}>详情</ElButton>
|
|
|
- <ElDivider direction="vertical" />
|
|
|
- <ElButton type="primary" link size="small" onClick={() => action('auth', row)}>审核增项</ElButton>
|
|
|
- </>
|
|
|
- )
|
|
|
- }else {
|
|
|
- return (
|
|
|
- <>
|
|
|
- <ElButton type="primary" link size="small" onClick={() => action('edit', row)}>详情</ElButton>
|
|
|
- </>
|
|
|
- )
|
|
|
- }
|
|
|
-
|
|
|
+ const row = data.row
|
|
|
+ if (row.add_item.length > 0 && row.add_item[0].status == 0) {
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <ElButton type="primary" link size="small" onClick={() => action('edit', row)}>
|
|
|
+ 详情
|
|
|
+ </ElButton>
|
|
|
+ <ElDivider direction="vertical" />
|
|
|
+ <ElButton type="primary" link size="small" onClick={() => action('auth', row)}>
|
|
|
+ 审核增项
|
|
|
+ </ElButton>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ } else {
|
|
|
+ return (
|
|
|
+ <>
|
|
|
+ <ElButton type="primary" link size="small" onClick={() => action('edit', row)}>
|
|
|
+ 详情
|
|
|
+ </ElButton>
|
|
|
+ </>
|
|
|
+ )
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -287,39 +276,30 @@ const tabsConfigs = reactive([
|
|
|
{
|
|
|
title: '设计稿',
|
|
|
total: 0,
|
|
|
- step:1
|
|
|
+ step: 1
|
|
|
},
|
|
|
{
|
|
|
title: '增项',
|
|
|
total: 0,
|
|
|
- step:2
|
|
|
- },
|
|
|
+ step: 2
|
|
|
+ }
|
|
|
])
|
|
|
-const getLists = (e)=> {
|
|
|
- console.log(e)
|
|
|
-}
|
|
|
const checkedSalesperson = (e) => {
|
|
|
- console.log(e,'x',e.value)
|
|
|
- currentRow.value.salesperson_id = e.value.id;
|
|
|
- currentRow.value.salesperson = e.value
|
|
|
- getList()
|
|
|
+ console.log(e, 'x', e.value)
|
|
|
+ currentRow.value.salesperson_id = e.value.id
|
|
|
+ currentRow.value.salesperson = e.value
|
|
|
+ getList()
|
|
|
}
|
|
|
const checkedDesigner = (e) => {
|
|
|
- console.log(e,'x',e.value)
|
|
|
- currentRow.value.designer_id = e.value.id;
|
|
|
- currentRow.value.designer = e.value
|
|
|
- getList()
|
|
|
-}
|
|
|
-const checkedWorker = (e) => {
|
|
|
- console.log(e,'x',e.value)
|
|
|
- currentRow.value.worker_id = e.value.id;
|
|
|
- currentRow.value.worker = e.value
|
|
|
- getList()
|
|
|
+ console.log(e, 'x', e.value)
|
|
|
+ currentRow.value.designer_id = e.value.id
|
|
|
+ currentRow.value.designer = e.value
|
|
|
+ getList()
|
|
|
}
|
|
|
const passAddItem = () => {
|
|
|
- isAuth.value = false
|
|
|
- // currentRow.value.add_item[0].status = 1
|
|
|
- getList()
|
|
|
+ isAuth.value = false
|
|
|
+ // currentRow.value.add_item[0].status = 1
|
|
|
+ getList()
|
|
|
}
|
|
|
const action = async (type: string, row?: any) => {
|
|
|
// actionType.value = type
|
|
|
@@ -327,22 +307,22 @@ const action = async (type: string, row?: any) => {
|
|
|
// dialogTitle.value = t('exampleDemo.add')
|
|
|
// currentRow.value = undefined
|
|
|
// }
|
|
|
-
|
|
|
+
|
|
|
// console.log(currentRow, 'currentRow')
|
|
|
// }
|
|
|
- const res = await getOrderDetail(row.id)
|
|
|
- if(type == 'edit') {
|
|
|
- isEdit.value = true
|
|
|
- dialogTitle.value = '详情'
|
|
|
- currentRow.value = res.data
|
|
|
- dialogVisible.value = true
|
|
|
- }else if(type == 'auth') {
|
|
|
- isAuth.value = true
|
|
|
- activeNames.value = 2
|
|
|
- dialogTitle.value = '详情'
|
|
|
- currentRow.value = res.data
|
|
|
- dialogVisible.value = true
|
|
|
- }
|
|
|
+ const res = await getOrderDetail(row.id)
|
|
|
+ if (type == 'edit') {
|
|
|
+ isEdit.value = true
|
|
|
+ dialogTitle.value = '详情'
|
|
|
+ currentRow.value = res.data
|
|
|
+ dialogVisible.value = true
|
|
|
+ } else if (type == 'auth') {
|
|
|
+ isAuth.value = true
|
|
|
+ activeNames.value = 2
|
|
|
+ dialogTitle.value = '详情'
|
|
|
+ currentRow.value = res.data
|
|
|
+ dialogVisible.value = true
|
|
|
+ }
|
|
|
}
|
|
|
// const goAssignSalesman = async (id:number, data: any) => {
|
|
|
// await assignSalesman(id,data)
|
|
|
@@ -378,30 +358,37 @@ const action = async (type: string, row?: any) => {
|
|
|
}"
|
|
|
/>
|
|
|
</ContentWrap>
|
|
|
-
|
|
|
- <ElDrawer
|
|
|
- v-model="dialogVisible"
|
|
|
- direction="rtl"
|
|
|
- size="50%"
|
|
|
- >
|
|
|
- <!-- // :title="dialogTitle" -->
|
|
|
- <template #header="{ titleId, titleClass }">
|
|
|
- <h4 :id="titleId" :class="titleClass">{{dialogTitle}}</h4>
|
|
|
- <!-- <el-button type="danger" @click="close">
|
|
|
+
|
|
|
+ <ElDrawer v-model="dialogVisible" direction="rtl" size="50%">
|
|
|
+ <!-- // :title="dialogTitle" -->
|
|
|
+ <template #header="{ titleId, titleClass }">
|
|
|
+ <h4 :id="titleId" :class="titleClass">{{ dialogTitle }}</h4>
|
|
|
+ <!-- <el-button type="danger" @click="close">
|
|
|
<el-icon class="el-icon--left"><CircleCloseFilled /></el-icon>
|
|
|
Close
|
|
|
</el-button> -->
|
|
|
- </template>
|
|
|
- <ElTabs v-model="activeNames" >
|
|
|
- <ElTabPane
|
|
|
- v-for="(item, index) in tabsConfigs"
|
|
|
- :key="index"
|
|
|
- :label="`${item.title}${item.total > 0 ? `(${item.total})` : ''}`"
|
|
|
- :name="index"
|
|
|
- />
|
|
|
- </ElTabs>
|
|
|
- <Detail v-if="activeNames === 0" :current-row="currentRow" :isEdit="isEdit" @checkedSalesperson="checkedSalesperson" @checkedDesigner="checkedDesigner"/>
|
|
|
- <Draft v-if="activeNames === 1" :current-row="currentRow" />
|
|
|
- <addItem v-if="activeNames === 2" :current-row="currentRow" :isAuth="isAuth" @passAddItem="passAddItem"/>
|
|
|
- </ElDrawer>
|
|
|
+ </template>
|
|
|
+ <ElTabs v-model="activeNames">
|
|
|
+ <ElTabPane
|
|
|
+ v-for="(item, index) in tabsConfigs"
|
|
|
+ :key="index"
|
|
|
+ :label="`${item.title}${item.total > 0 ? `(${item.total})` : ''}`"
|
|
|
+ :name="index"
|
|
|
+ />
|
|
|
+ </ElTabs>
|
|
|
+ <Detail
|
|
|
+ v-if="activeNames === 0"
|
|
|
+ :current-row="currentRow"
|
|
|
+ :isEdit="isEdit"
|
|
|
+ @checkedSalesperson="checkedSalesperson"
|
|
|
+ @checkedDesigner="checkedDesigner"
|
|
|
+ />
|
|
|
+ <Draft v-if="activeNames === 1" :current-row="currentRow" />
|
|
|
+ <addItem
|
|
|
+ v-if="activeNames === 2"
|
|
|
+ :current-row="currentRow"
|
|
|
+ :isAuth="isAuth"
|
|
|
+ @passAddItem="passAddItem"
|
|
|
+ />
|
|
|
+ </ElDrawer>
|
|
|
</template>
|