bug修复

This commit is contained in:
jia 2024-01-10 09:56:53 +08:00
parent 089c140dec
commit 0ffb88dfbb
3 changed files with 255 additions and 215 deletions

View File

@ -8,184 +8,140 @@
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="客户信息" name="new_name_1">
<el-card class="mb-2">
<div class="tit">客户基本资料1</div>
<el-row>
<el-col :span="8">
<el-form-item label="客户姓名">
{{ formData.name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="客户属性">
{{ formData.custom_type_text
}}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="上级公司">
{{ formData.parent_company }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="phone" :rules="[{ validator: checkPhone, trigger: 'blur' }]">
{{ formData.phone }}
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item label="信用度" prop="credit_rating_text">
{{ formData.credit_rating_text }}
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="省">
{{ formData.province_name }}
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="市">
{{ formData.city_name }}
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="区">
{{ formData.area_name }}
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地址" prop="address">
{{ formData.address }}
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="notes">
{{ formData.notes }}
</el-form-item>
</el-col>
</el-row>
</el-card>
<el-card class="mb-2">
<div class="tit">主要负责人</div>
<el-row>
<el-col :span="8">
<el-form-item label="姓名" prop="master_name">
{{ formData.master_name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="职位" prop="master_position">
{{ formData.master_position }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="手机" prop="master_phone">
{{ formData.master_phone }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="邮箱" prop="master_email">
{{ formData.master_email }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="电话" prop="master_telephone">
{{ formData.master_telephone }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注" prop="master_notes">
{{ formData.master_notes }}
</el-form-item>
</el-col>
</el-row>
</el-card>
<el-card class="mb-2">
<div class="tit">其他联系人</div>
<el-row>
<el-table :data="contactsList">
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="组织" prop="org_name" show-overflow-tooltip />
<el-table-column label="部门" prop="dept_name" show-overflow-tooltip />
<el-table-column label="姓名" prop="name" show-overflow-tooltip />
<el-table-column label="职位" prop="position" show-overflow-tooltip />
<el-table-column label="手机" prop="phone" show-overflow-tooltip />
<el-table-column label="电话" prop="telephone" show-overflow-tooltip />
<el-table-column label="邮箱" prop="email" show-overflow-tooltip />
<el-table-column label="备注" prop="notes" show-overflow-tooltip />
</el-table>
</el-row>
</el-card>
<el-card class="mb-2">
<div class="tit">开票信息</div>
<el-row>
<el-col :span="8">
<el-form-item label="开票公司" prop="company_name">
{{ formData.company_name }}
</el-form-item>
<el-descriptions title="基本信息" :column="2" border>
</el-col>
<el-col :span="8">
<el-form-item label="纳税人识别" prop="company_tin">
{{ formData.company_tin }}
</el-form-item>
<el-descriptions-item label="客户名称" label-align="left" align="left" label-class-name="my-label">{{ formData.name }}</el-descriptions-item>
<el-descriptions-item label="客户属性" label-align="left" align="left" label-class-name="my-label"> {{ formData.custom_type_text }}</el-descriptions-item>
<el-descriptions-item label="上级公司" label-align="left" align="left" label-class-name="my-label"> {{ formData.parent_company }}</el-descriptions-item>
<el-descriptions-item label="客户地址" label-align="left" align="left" label-class-name="my-label">
{{ formData.address }}
</el-descriptions-item>
<el-descriptions-item label="电话" label-align="left" align="left" label-class-name="my-label"> {{ formData.phone
}}</el-descriptions-item>
<el-descriptions-item label="信用度" label-align="left" align="left" label-class-name="my-label"> {{ formData.credit_rating_text
</el-col>
<el-col :span="8">
<el-form-item label="开户地址" prop="bank_open_address">
{{ formData.bank_open_address }}
</el-form-item>
}}</el-descriptions-item>
</el-col>
<el-col :span="8">
<el-form-item label="公司电话" prop="company_telephone">
{{ formData.company_telephone }}
</el-form-item>
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label"> {{ formData.notes
</el-col>
<el-col :span="8">
<el-form-item label="开户银行" prop="bank_name">
{{ formData.bank_name }}
</el-form-item>
}}</el-descriptions-item>
</el-col>
<el-col :span="8">
<el-form-item label="银行账号" prop="bank_account">
</el-descriptions>
<el-descriptions title="主要负责人" :column="2" border>
<el-descriptions-item label="姓名" label-align="left" align="left" label-class-name="my-label">{{ formData.master_name }}</el-descriptions-item>
<el-descriptions-item label="职位" label-align="left" align="left" label-class-name="my-label"> {{ formData.master_position }}</el-descriptions-item>
<el-descriptions-item label="手机" label-align="left" align="left" label-class-name="my-label"> {{ formData.master_phone }}</el-descriptions-item>
<el-descriptions-item label="邮箱" label-align="left" align="left" label-class-name="my-label">
{{ formData.master_email }}
</el-descriptions-item>
<el-descriptions-item label="电话" label-align="left" align="left" label-class-name="my-label"> {{ formData.master_telephone
}}</el-descriptions-item>
<el-descriptions-item label="备注" label-align="left" align="left" label-class-name="my-label"> {{ formData.master_notes
}}</el-descriptions-item>
</el-descriptions>
<div class="tit">其他联系人</div>
<el-row>
<el-table :data="contactsList">
<el-table-column label="序号" type="index" width="55" />
<el-table-column label="组织" prop="org_name" show-overflow-tooltip />
<el-table-column label="部门" prop="dept_name" show-overflow-tooltip />
<el-table-column label="姓名" prop="name" show-overflow-tooltip />
<el-table-column label="职位" prop="position" show-overflow-tooltip />
<el-table-column label="手机" prop="phone" show-overflow-tooltip />
<el-table-column label="电话" prop="telephone" show-overflow-tooltip />
<el-table-column label="邮箱" prop="email" show-overflow-tooltip />
<el-table-column label="备注" prop="notes" show-overflow-tooltip />
</el-table>
</el-row>
<el-descriptions title="开票信息" :column="2" border>
<el-descriptions-item label="开票公司名称" label-align="left" align="left" label-class-name="my-label">{{ formData.company_name }}</el-descriptions-item>
<el-descriptions-item label="纳税人识别号" label-align="left" align="left" label-class-name="my-label"> {{ formData.company_tin }}</el-descriptions-item>
<el-descriptions-item label="开户地址" label-align="left" align="left" label-class-name="my-label">
{{ formData.bank_open_address }}
</el-descriptions-item>
<el-descriptions-item label="电话" label-align="left" align="left" label-class-name="my-label"> {{ formData.company_telephone
}}</el-descriptions-item>
<el-descriptions-item label="开户银行" label-align="left" align="left" label-class-name="my-label"> {{ formData.bank_name
}}</el-descriptions-item>
<el-descriptions-item label="银行账号" label-align="left" align="left" label-class-name="my-label"> {{ formData.bank_account
}}</el-descriptions-item>
</el-descriptions>
{{ formData.bank_account }}
</el-form-item>
</el-col>
</el-row>
</el-card>
</el-tab-pane>
<el-tab-pane label="项目" name="new_name_2">Config</el-tab-pane>
<el-tab-pane label="报价" name="new_name_3">Role</el-tab-pane>
<el-tab-pane label="项目" name="new_name_2">
<div>
<el-table :data="tableData1" stripe style="width: 100%">
<el-table-column label="项目编码" prop='project_code' width="180" />
<el-table-column label="项目名称" prop='name' width="180" />
<el-table-column label="项目估算(万元)" prop='project_estimation' />
<el-table-column label="项目状态" prop='status' />
<el-table-column label="项目类型" prop='project_type' />
<el-table-column label="立项日期" prop='create_time' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager1.page_no" v-model:page-size="pager1.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total1" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
</div>
</el-tab-pane>
<el-tab-pane label="报价" name="new_name_3">
<div>
<el-table :data="tableData2" stripe style="width: 100%">
<el-table-column label="报价单号" prop='code' width="180" />
<el-table-column label="制单人" prop='create_user' width="180" />
<el-table-column label="报价日期" prop='quotation_date' />
<el-table-column label="订单金额" prop='amount_including_tax' />
<el-table-column label="运费" prop='freight' />
<el-table-column label="其它费用" prop='other_fee' />
<el-table-column label="合计金额" prop='total_amount' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager2.page_no" v-model:page-size="pager2.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total2" @size-change="handleSizeChange2" @current-change="handleCurrentChange2" />
</div>
</el-tab-pane>
<el-tab-pane label="合同" name="new_name_4">Task</el-tab-pane>
<el-tab-pane label="订单" name="new_name_5">Task</el-tab-pane>
<el-tab-pane label="发票" name="new_name_6">Task</el-tab-pane>
<el-tab-pane label="回款" name="new_name_7">Task</el-tab-pane>
<el-tab-pane label="售后" name="new_name_8">Task</el-tab-pane>
<el-tab-pane label="售后" name="new_name_8">
<div>
<el-table :data="tableData3" stripe style="width: 100%">
<el-table-column label="工单编号" prop='code' width="180" />
<el-table-column label="合同编号" prop='create_user' width="180" />
<el-table-column label="投诉主题" prop='quotation_date' />
<el-table-column label="日期" prop='amount_including_tax' />
<el-table-column label="分类" prop='freight' />
<el-table-column label="工时" prop='other_fee' />
<el-table-column label="单价" prop='total_amount' />
<el-table-column label="工时费用" prop='total_amount' />
</el-table>
</div>
<div style="margin: 10px 0;">
<el-pagination v-model:current-page="pager3.page_no" v-model:page-size="pager3.page_size" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total3" @size-change="handleSizeChange3" @current-change="handleCurrentChange3" />
</div>
</el-tab-pane>
</el-tabs>
@ -202,8 +158,10 @@ import {
} from "@/api/common";
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiCustomContactsLists } from '@/api/custom_contacts'
import { apiProjectLists } from '@/api/project'
import { apiQuotationLists } from '@/api/quotation'
import { apiCustomDetail } from '@/api/custom'
import { apiCustomServiceLists } from '@/api/custom_service'
import { timeFormat } from '@/utils/util'
import type { TabsPaneContext } from 'element-plus'
import type { PropType } from 'vue'
@ -217,11 +175,17 @@ const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const tableData1 = ref([])
const tableData2 = ref([])
const tableData3 = ref([])
const tableData4 = ref([])
const tableData5 = ref([])
const tableData6 = ref([])
const activeName = ref('new_name_1')
const handleClick = (tab: TabsPaneContext, event: Event) => {
console.log(tab, event)
// console.log(tab, event)
}
const datas = reactive({
provinceOptions: [],
@ -235,7 +199,107 @@ const formData = reactive({
})
const pager1 = reactive({
page_size: 10,
page_no: 1,
custom_id: ""
})
const pager2 = reactive({
page_size: 10,
page_no: 1,
custom_id: ""
})
const pager3 = reactive({
page_size: 10,
page_no: 1,
custom_id: ""
})
const pager4 = reactive({
page_size: 10,
page_no: 1,
custom_id: ""
})
const pager5 = reactive({
page_size: 10,
page_no: 1,
custom_id: ""
})
const pager6 = reactive({
page_size: 10,
page_no: 1,
custom_id: ""
})
const total1 = ref(0)
const total2 = ref(0)
const total3 = ref(0)
const total4 = ref(0)
const total5 = ref(0)
const total6 = ref(0)
const total7 = ref(0)
const total8 = ref(0)
//
const handleSizeChange1 = (val: number) => {
pager1.page_size = val
}
const handleSizeChange2 = (val: number) => {
pager2.page_size = val
estimateLists()
}
const handleSizeChange3 = (val: number) => {
pager3.page_size = val
competitorLists()
}
const handleSizeChange4 = (val: number) => {
pager4.page_size = val
competitorLists()
}
const handleSizeChange5 = (val: number) => {
pager5.page_size = val
competitorLists()
}
const handleSizeChange6 = (val: number) => {
pager6.page_size = val
competitorLists()
}
//
const handleCurrentChange1 = (val: number) => {
console.log(`current page: ${val}`)
pager1.page_no = val
solutionLists()
}
const handleCurrentChange2 = (val: number) => {
console.log(`current page: ${val}`)
pager2.page_no = val
estimateLists()
}
const handleCurrentChange3 = (val: number) => {
pager3.page_no = val
console.log(`current page: ${val}`)
competitorLists()
}
const handleCurrentChange4 = (val: number) => {
pager4.page_no = val
console.log(`current page: ${val}`)
competitorLists()
}
const handleCurrentChange5 = (val: number) => {
pager5page_no = val
console.log(`current page: ${val}`)
competitorLists()
}
const handleCurrentChange6 = (val: number) => {
pager6.page_no = val
console.log(`current page: ${val}`)
competitorLists()
}
//
const setFormData = async (data: Record<any, any>) => {
// for (const key in formData) {
@ -255,14 +319,16 @@ const setFormData = async (data: Record<any, any>) => {
// }
Object.assign(formData, data)
pager1.custom_id = data.id
pager2.custom_id = data.id
pager3.custom_id = data.id
pager4.custom_id = data.id
pager5.custom_id = data.id
pager6.custom_id = data.id
getcontacts(data)
}
const getcontacts = async (row: Record<string, any>) => {
const data = await apiCustomContactsLists({
custom_id: row.id
})
contactsList.value = data.lists
projectLists()
quotationLists()
customServiceLists()
}
const getDetail = async (row: Record<string, any>) => {
@ -291,51 +357,27 @@ const handleClose = () => {
}
//
function province_change(value: string) {
getCityList();
//
const projectLists = () => {
apiProjectLists(pager1).then((res) => {
tableData1.value = res.lists
total1.value = res.count
})
}
function city_change(value: string) {
getAreaList();
//
const quotationLists = () => {
apiQuotationLists(pager2).then((res) => {
tableData2.value = res.lists
total2.value = res.count
})
}
// function brigade_change(value: string) {
// formData.brigade = value
// }
const getProvinceList = async () => {
const data = await apiProvinceList({});
datas["provinceOptions"] = data;
};
const getCityList = async () => {
const data = await apiCityList({ province_code: formData.province });
datas["cityOptions"] = data;
};
const getAreaList = async () => {
const data = await apiAreaList({ city_code: formData.city });
datas["areaOptions"] = data;
};
//
function other() {
formData.other_contacts.push({
name: "",
position: "",
phone: "",
email: "",
});
//
const customServiceLists = () => {
apiCustomServiceLists(pager3).then((res) => {
tableData3.value = res.lists
total3.value = res.count
})
}
//
function otherdelete() {
formData.other_contacts.pop({
name: "",
position: "",
phone: "",
email: "",
});
}
getProvinceList();
defineExpose({
open,

View File

@ -40,6 +40,7 @@
<div v-else>
暂无文件
</div>
</div>
</el-descriptions-item>

View File

@ -207,12 +207,9 @@ const formData = reactive({
//
const handleSizeChange1 = (val: number) => {
pager1.page_size = val
solutionLists()
}
const handleSizeChange2 = (val: number) => {
pager2.page_size = val
estimateLists()
}