|
@@ -16,7 +16,7 @@
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :span="12">
|
|
<a-col :span="12">
|
|
<a-form-item label="报价项目(quotation project)" v-bind="validateInfos.quotationProjectName" id="quotationFormForm-quotationProjectName" name="quotationProjectName">
|
|
<a-form-item label="报价项目(quotation project)" v-bind="validateInfos.quotationProjectName" id="quotationFormForm-quotationProjectName" name="quotationProjectName">
|
|
- <a-input-search v-model:value="formData.quotationProjectName" placeholder="请输入报价项目(inquiry project)" allow-clear enter-button="Search" @search="onSearchProject"></a-input-search>
|
|
|
|
|
|
+ <a-input-search v-model:value="formData.quotationProjectName" placeholder="请输入报价项目(inquiry project)" allow-clear enter-button="Search" :disabled="saleQuotationFormProductTable.dataSource.length!==0" @search="onSearchProject"></a-input-search>
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-col>
|
|
</a-col>
|
|
<a-col :span="12">
|
|
<a-col :span="12">
|
|
@@ -29,11 +29,6 @@
|
|
<a-range-picker v-model:value="quotationPeriod" :format="['YYYY-MM-DD','YYYY-MM-DD']" @change="onChangequotationPeriod" style="width: 100%" />
|
|
<a-range-picker v-model:value="quotationPeriod" :format="['YYYY-MM-DD','YYYY-MM-DD']" @change="onChangequotationPeriod" style="width: 100%" />
|
|
</a-form-item>
|
|
</a-form-item>
|
|
</a-col>
|
|
</a-col>
|
|
- <a-col :span="12">
|
|
|
|
- <a-form-item label="业务类型(busyness type)" v-bind="validateInfos.busynessType" id="quotationFormForm-busynessType" name="busynessType" :labelCol="formItemLayout.labelCol1" :wrapperCol="formItemLayout.wrapperCol1">
|
|
|
|
- <JDictSelectTag v-model:value="formData.busynessType" placeholder="请选择" dictCode="busyness_type"/>
|
|
|
|
- </a-form-item>
|
|
|
|
- </a-col>
|
|
|
|
<a-col :span="12">
|
|
<a-col :span="12">
|
|
<a-form-item label="优先级(priority)" v-bind="validateInfos.priority" id="quotationFormForm-priority" name="priority">
|
|
<a-form-item label="优先级(priority)" v-bind="validateInfos.priority" id="quotationFormForm-priority" name="priority">
|
|
<JDictSelectTag v-model:value="formData.priority" placeholder="请选择" dictCode="priority"/>
|
|
<JDictSelectTag v-model:value="formData.priority" placeholder="请选择" dictCode="priority"/>
|
|
@@ -147,7 +142,7 @@
|
|
</a-tab-pane>
|
|
</a-tab-pane>
|
|
<a-tab-pane tab="销售报价单 - 产品明细(product details)" key="saleQuotationFormProduct" :forceRender="true">
|
|
<a-tab-pane tab="销售报价单 - 产品明细(product details)" key="saleQuotationFormProduct" :forceRender="true">
|
|
<a-button type="primary" @click="selectProducts" style="margin-right: 1%;margin-bottom: 1%;"> 选择产品(select product)</a-button>
|
|
<a-button type="primary" @click="selectProducts" style="margin-right: 1%;margin-bottom: 1%;"> 选择产品(select product)</a-button>
|
|
- <!-- <a-button type="primary" @click="chooseSupplier"> 选择供应商报价(selete supplier quotation)</a-button> -->
|
|
|
|
|
|
+ <a-button type="primary" @click="chooseSupplier"> 选择供应商报价(selete supplier quotation)</a-button>
|
|
<j-vxe-table
|
|
<j-vxe-table
|
|
:keep-source="true"
|
|
:keep-source="true"
|
|
resizable
|
|
resizable
|
|
@@ -177,6 +172,7 @@
|
|
<SelectPrpductModal ref="SelectPrpductModalRef" @selectProduct="addProduct"></SelectPrpductModal>
|
|
<SelectPrpductModal ref="SelectPrpductModalRef" @selectProduct="addProduct"></SelectPrpductModal>
|
|
<SelectProjectModal ref="SelectProjectModalRef" @selectProject="addProject"></SelectProjectModal>
|
|
<SelectProjectModal ref="SelectProjectModalRef" @selectProject="addProject"></SelectProjectModal>
|
|
<ViewHistoryQuotationModal ref="ViewHistoryQuotationModalRef" ></ViewHistoryQuotationModal>
|
|
<ViewHistoryQuotationModal ref="ViewHistoryQuotationModalRef" ></ViewHistoryQuotationModal>
|
|
|
|
+ <SelectSupplierQuotation ref="SelectSupplierQuotationRef" @selectProduct="addProductFromSupplier"></SelectSupplierQuotation>
|
|
</a-spin>
|
|
</a-spin>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -191,6 +187,7 @@
|
|
import BaseShipArchiveAccessoriesList from './BaseShipArchiveAccessoriesModal.vue';
|
|
import BaseShipArchiveAccessoriesList from './BaseShipArchiveAccessoriesModal.vue';
|
|
import SelectPrpductModal from './SelectPrpductModal.vue';
|
|
import SelectPrpductModal from './SelectPrpductModal.vue';
|
|
import SelectProjectModal from './SelectProjectModal.vue';
|
|
import SelectProjectModal from './SelectProjectModal.vue';
|
|
|
|
+ import SelectSupplierQuotation from './SelectSupplierQuotation.vue';
|
|
import ViewHistoryQuotationModal from './ViewHistoryQuotationModal.vue';
|
|
import ViewHistoryQuotationModal from './ViewHistoryQuotationModal.vue';
|
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
|
import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
|
|
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
|
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
|
@@ -213,6 +210,7 @@
|
|
SelectPrpductModal,
|
|
SelectPrpductModal,
|
|
JUpload,
|
|
JUpload,
|
|
SelectProjectModal,
|
|
SelectProjectModal,
|
|
|
|
+ SelectSupplierQuotation,
|
|
ViewHistoryQuotationModal,
|
|
ViewHistoryQuotationModal,
|
|
JDictSelectTag,
|
|
JDictSelectTag,
|
|
JSelectInput,
|
|
JSelectInput,
|
|
@@ -234,6 +232,7 @@
|
|
var SelectPrpductModalRef = ref()
|
|
var SelectPrpductModalRef = ref()
|
|
var SelectProjectModalRef = ref()
|
|
var SelectProjectModalRef = ref()
|
|
var ViewHistoryQuotationModalRef = ref()
|
|
var ViewHistoryQuotationModalRef = ref()
|
|
|
|
+ var SelectSupplierQuotationRef = ref()
|
|
var quotationPeriod = ref([])
|
|
var quotationPeriod = ref([])
|
|
const saleQuotationFormShipTableRef = ref();
|
|
const saleQuotationFormShipTableRef = ref();
|
|
const saleQuotationFormShipTable = reactive<Record<string, any>>({
|
|
const saleQuotationFormShipTable = reactive<Record<string, any>>({
|
|
@@ -310,7 +309,7 @@
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
+ //新增方法
|
|
function add() {
|
|
function add() {
|
|
resetFields();
|
|
resetFields();
|
|
saleQuotationFormShipTable.dataSource = [];
|
|
saleQuotationFormShipTable.dataSource = [];
|
|
@@ -322,7 +321,7 @@
|
|
formData.salesman=userStore.getUserInfo.username;
|
|
formData.salesman=userStore.getUserInfo.username;
|
|
formData.saleDepartment = userStore.getUserInfo.orgCode
|
|
formData.saleDepartment = userStore.getUserInfo.orgCode
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //编辑方法
|
|
async function edit(row) {
|
|
async function edit(row) {
|
|
//主表数据
|
|
//主表数据
|
|
await queryMainData(row.id);
|
|
await queryMainData(row.id);
|
|
@@ -337,6 +336,7 @@
|
|
quotationPeriod.value[1]=formData.quotationPeriodEnd?moment(formData.quotationPeriodEnd):''
|
|
quotationPeriod.value[1]=formData.quotationPeriodEnd?moment(formData.quotationPeriodEnd):''
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ //获取主表
|
|
async function queryMainData(id) {
|
|
async function queryMainData(id) {
|
|
const row = await queryDataById(id);
|
|
const row = await queryDataById(id);
|
|
resetFields();
|
|
resetFields();
|
|
@@ -354,7 +354,7 @@
|
|
'saleQuotationShip': saleQuotationFormShipTableRef,
|
|
'saleQuotationShip': saleQuotationFormShipTableRef,
|
|
'saleQuotationProduct': saleQuotationFormProductTableRef,
|
|
'saleQuotationProduct': saleQuotationFormProductTableRef,
|
|
});
|
|
});
|
|
-
|
|
|
|
|
|
+ //获取表单信息
|
|
async function getFormData() {
|
|
async function getFormData() {
|
|
try {
|
|
try {
|
|
// 触发表单验证
|
|
// 触发表单验证
|
|
@@ -370,7 +370,7 @@
|
|
}
|
|
}
|
|
return transformData(toRaw(formData))
|
|
return transformData(toRaw(formData))
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+ //保存
|
|
async function submitForm() {
|
|
async function submitForm() {
|
|
const mainData = await getFormData();
|
|
const mainData = await getFormData();
|
|
const subData = await getSubFormAndTableData();
|
|
const subData = await getSubFormAndTableData();
|
|
@@ -399,34 +399,40 @@
|
|
function handleFormChange(key, value) {
|
|
function handleFormChange(key, value) {
|
|
formData[key] = value;
|
|
formData[key] = value;
|
|
}
|
|
}
|
|
|
|
+ //传明细-删除行
|
|
async function handleDelete(prop) {
|
|
async function handleDelete(prop) {
|
|
var newArray = [...saleQuotationFormShipTable.dataSource]
|
|
var newArray = [...saleQuotationFormShipTable.dataSource]
|
|
newArray.splice(prop.rowIndex, 1)
|
|
newArray.splice(prop.rowIndex, 1)
|
|
saleQuotationFormShipTable.dataSource = newArray
|
|
saleQuotationFormShipTable.dataSource = newArray
|
|
}
|
|
}
|
|
|
|
+ //产品明细-删除行
|
|
async function handleDelete1(prop) {
|
|
async function handleDelete1(prop) {
|
|
var newArray = [...saleQuotationFormProductTable.dataSource]
|
|
var newArray = [...saleQuotationFormProductTable.dataSource]
|
|
newArray.splice(prop.rowIndex, 1)
|
|
newArray.splice(prop.rowIndex, 1)
|
|
saleQuotationFormProductTable.dataSource = newArray
|
|
saleQuotationFormProductTable.dataSource = newArray
|
|
}
|
|
}
|
|
|
|
+ //查询船
|
|
function selectShip(){
|
|
function selectShip(){
|
|
SelectShipSModalRef.value.getTable()
|
|
SelectShipSModalRef.value.getTable()
|
|
}
|
|
}
|
|
|
|
+ //增行-船明细
|
|
function addShip(data){
|
|
function addShip(data){
|
|
var arr = data.concat(saleQuotationFormShipTable.dataSource)
|
|
var arr = data.concat(saleQuotationFormShipTable.dataSource)
|
|
arr.map(item=>item.shipowner = item.relateCustomer)
|
|
arr.map(item=>item.shipowner = item.relateCustomer)
|
|
saleQuotationFormShipTable.dataSource=arr
|
|
saleQuotationFormShipTable.dataSource=arr
|
|
}
|
|
}
|
|
|
|
+ //增行-产品明细
|
|
function addProduct(data){
|
|
function addProduct(data){
|
|
var arrProduct = data.concat(saleQuotationFormProductTable.dataSource)
|
|
var arrProduct = data.concat(saleQuotationFormProductTable.dataSource)
|
|
arrProduct.map(item=>{
|
|
arrProduct.map(item=>{
|
|
item.productClass = item.classId_dictText
|
|
item.productClass = item.classId_dictText
|
|
item.productCode = item.code
|
|
item.productCode = item.code
|
|
- item.unit = item.measurementUnit
|
|
|
|
|
|
+ // item.unit = item.measurementUnit
|
|
item.deliveryTime = formData.deliveryTime
|
|
item.deliveryTime = formData.deliveryTime
|
|
})
|
|
})
|
|
saleQuotationFormProductTable.dataSource=arrProduct
|
|
saleQuotationFormProductTable.dataSource=arrProduct
|
|
}
|
|
}
|
|
|
|
+ //选择项目
|
|
function addProject(data) {
|
|
function addProject(data) {
|
|
formData.quotationProject = data[0].id
|
|
formData.quotationProject = data[0].id
|
|
formData.quotationProjectName = data[0].name
|
|
formData.quotationProjectName = data[0].name
|
|
@@ -438,6 +444,7 @@
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
+ //获取客户列表
|
|
function getCustomerOptions(){
|
|
function getCustomerOptions(){
|
|
let params = {pageSize:'-1',status:1}
|
|
let params = {pageSize:'-1',status:1}
|
|
defHttp.get({url:'/cuspCode/cuspCustomerProfile/list',params}, { isTransformResponse: false }).then(res=>{
|
|
defHttp.get({url:'/cuspCode/cuspCustomerProfile/list',params}, { isTransformResponse: false }).then(res=>{
|
|
@@ -453,15 +460,23 @@
|
|
}
|
|
}
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
+ //查看配件信息
|
|
function viewAccessory(prop){
|
|
function viewAccessory(prop){
|
|
BaseShipArchiveAccessoriesListRef.value.getTable(prop.row)
|
|
BaseShipArchiveAccessoriesListRef.value.getTable(prop.row)
|
|
}
|
|
}
|
|
|
|
+ //选择产品
|
|
function selectProducts(){
|
|
function selectProducts(){
|
|
SelectPrpductModalRef.value.getTable()
|
|
SelectPrpductModalRef.value.getTable()
|
|
}
|
|
}
|
|
|
|
+ //选择供应商报价单
|
|
|
|
+ function chooseSupplier(){
|
|
|
|
+ SelectSupplierQuotationRef.value.getTable(formData)
|
|
|
|
+ }
|
|
|
|
+ //选择项目
|
|
function onSearchProject(){
|
|
function onSearchProject(){
|
|
SelectProjectModalRef.value.getTable()
|
|
SelectProjectModalRef.value.getTable()
|
|
}
|
|
}
|
|
|
|
+ //获取产品分类下拉框
|
|
function getOptiom(){
|
|
function getOptiom(){
|
|
defHttp
|
|
defHttp
|
|
.get({ url: 'baseCode/baseProductClass/list'}, { isTransformResponse: false })
|
|
.get({ url: 'baseCode/baseProductClass/list'}, { isTransformResponse: false })
|
|
@@ -481,14 +496,13 @@
|
|
// loading.value = false;
|
|
// loading.value = false;
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
+ //修改报价有效期
|
|
function onChangequotationPeriod(data){
|
|
function onChangequotationPeriod(data){
|
|
quotationPeriod.value = data
|
|
quotationPeriod.value = data
|
|
formData.quotationPeriodBegin = data[0].format('YYYY-MM-DD')
|
|
formData.quotationPeriodBegin = data[0].format('YYYY-MM-DD')
|
|
formData.quotationPeriodEnd = data[1].format('YYYY-MM-DD')
|
|
formData.quotationPeriodEnd = data[1].format('YYYY-MM-DD')
|
|
}
|
|
}
|
|
- function chooseSupplier(){
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
|
|
+ //修改主表交期
|
|
function changeDelivertTime(prop){
|
|
function changeDelivertTime(prop){
|
|
if(saleQuotationFormProductTable.dataSource.length>0){
|
|
if(saleQuotationFormProductTable.dataSource.length>0){
|
|
var newArr = [...saleQuotationFormProductTable.dataSource]
|
|
var newArr = [...saleQuotationFormProductTable.dataSource]
|
|
@@ -498,12 +512,14 @@
|
|
saleQuotationFormProductTable.dataSource = newArr
|
|
saleQuotationFormProductTable.dataSource = newArr
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //查看上次报价
|
|
function viewHistory(){
|
|
function viewHistory(){
|
|
ViewHistoryQuotationModalRef.value.getTable()
|
|
ViewHistoryQuotationModalRef.value.getTable()
|
|
}
|
|
}
|
|
|
|
+ //查看版本详情
|
|
async function VersionDetail(record){
|
|
async function VersionDetail(record){
|
|
//主表数据
|
|
//主表数据
|
|
- await queryVersonHistoryData(record.id);
|
|
|
|
|
|
+ await queryVersonHistoryData(record.id);
|
|
//子表数据
|
|
//子表数据
|
|
const saleQuotationFormShipDataList = await querysaleVersonFormShipListByMainId(record.id);
|
|
const saleQuotationFormShipDataList = await querysaleVersonFormShipListByMainId(record.id);
|
|
saleQuotationFormShipTable.dataSource = [...saleQuotationFormShipDataList];
|
|
saleQuotationFormShipTable.dataSource = [...saleQuotationFormShipDataList];
|
|
@@ -526,6 +542,30 @@
|
|
//赋值
|
|
//赋值
|
|
Object.assign(formData,tmpData);
|
|
Object.assign(formData,tmpData);
|
|
}
|
|
}
|
|
|
|
+ //新增行-产品明细-选择供应商报价单
|
|
|
|
+ async function addProductFromSupplier(data){
|
|
|
|
+ var arrProduct = data.concat(saleQuotationFormProductTable.dataSource)
|
|
|
|
+ arrProduct.map(item=>{
|
|
|
|
+ item.productClass = item.productionClass
|
|
|
|
+ item.productCode = item.productCode
|
|
|
|
+ item.sourceId = item.childId
|
|
|
|
+ item.model = item.childModel
|
|
|
|
+ item.deliveryTime = formData.deliveryTime
|
|
|
|
+ item.supplierCurrency = item.currency
|
|
|
|
+ })
|
|
|
|
+ saleQuotationFormProductTable.dataSource=arrProduct
|
|
|
|
+ formData.quotationProject = data[0].quotationProject
|
|
|
|
+ formData.quotationProjectName = data[0].projectName
|
|
|
|
+ formData.sourceCode = data[0].billCode
|
|
|
|
+ formData.priority = data[0].priority
|
|
|
|
+ formData.model = data[0].headModel
|
|
|
|
+ formData.maker = data[0].maker
|
|
|
|
+ formData.productionClass = data[0].productionClass
|
|
|
|
+ //查询客户名称
|
|
|
|
+ var obj = await SelectProjectModalRef.value.getCustom(formData.quotationProject)
|
|
|
|
+ formData.quotationCustomer =obj[0].customerId
|
|
|
|
+ formData.quotationCustomerName =obj[0].customerId_dictText
|
|
|
|
+ }
|
|
return {
|
|
return {
|
|
saleQuotationFormShipTableRef,
|
|
saleQuotationFormShipTableRef,
|
|
saleQuotationFormShipTable,
|
|
saleQuotationFormShipTable,
|
|
@@ -557,6 +597,7 @@
|
|
SelectPrpductModalRef,
|
|
SelectPrpductModalRef,
|
|
SelectProjectModalRef,
|
|
SelectProjectModalRef,
|
|
ViewHistoryQuotationModalRef,
|
|
ViewHistoryQuotationModalRef,
|
|
|
|
+ SelectSupplierQuotationRef,
|
|
onSearchProject,
|
|
onSearchProject,
|
|
addProject,
|
|
addProject,
|
|
getOptiom,
|
|
getOptiom,
|
|
@@ -570,7 +611,8 @@
|
|
viewHistory,
|
|
viewHistory,
|
|
baseUrl,
|
|
baseUrl,
|
|
VersionDetail,
|
|
VersionDetail,
|
|
- queryVersonHistoryData
|
|
|
|
|
|
+ queryVersonHistoryData,
|
|
|
|
+ addProductFromSupplier
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
});
|