Commit eca62a85 authored by 1483922988@qq.com's avatar 1483922988@qq.com

Merge branch 'test' into dev-zs

parents d1e718ce 9b4ce654
...@@ -107,6 +107,13 @@ export function feeApplicationCreateBatch(data) { ...@@ -107,6 +107,13 @@ export function feeApplicationCreateBatch(data) {
data: data data: data
}) })
} }
// 删除申请费用
export function feeApplicationDelete(id) {
return request({
url: "order/fee-application/delete?id=" + id,
method: "delete"
})
}
// 根据订单ID获取是否有正在申请的费用申请 // 根据订单ID获取是否有正在申请的费用申请
export function getFeeApplicationApproveByOrderId(orderId) { export function getFeeApplicationApproveByOrderId(orderId) {
...@@ -1096,8 +1103,8 @@ export function order_warehouse_check_revoke(data) { ...@@ -1096,8 +1103,8 @@ export function order_warehouse_check_revoke(data) {
// 到仓修改 // 到仓修改
export function order_warehouse_check_update(data) { export function order_warehouse_check_update(data) {
return request({ return request({
url: "/order-warehouse-check/update", url: "/order/order-warehouse-check/update",
method: "post", method: "put",
data data
}) })
} }
...@@ -15,7 +15,7 @@ import './permission' // permission control ...@@ -15,7 +15,7 @@ import './permission' // permission control
import './tongji' // 百度统计 import './tongji' // 百度统计
import { getDicts } from "@/api/system/dict/data"; import { getDicts } from "@/api/system/dict/data";
import { getConfigKey } from "@/api/infra/config"; import { getConfigKey } from "@/api/infra/config";
import { parseTime, resetForm, addDateRange, addBeginAndEndTime, handleTree} from "@/utils/ruoyi"; import { parseTime, resetForm, addDateRange, addBeginAndEndTime, addBeginAndEndTimeNew, handleTree} from "@/utils/ruoyi";
import Pagination from "@/components/Pagination"; import Pagination from "@/components/Pagination";
// 自定义表格工具扩展 // 自定义表格工具扩展
import RightToolbar from "@/components/RightToolbar" import RightToolbar from "@/components/RightToolbar"
...@@ -33,6 +33,7 @@ Vue.prototype.parseTime = parseTime ...@@ -33,6 +33,7 @@ Vue.prototype.parseTime = parseTime
Vue.prototype.resetForm = resetForm Vue.prototype.resetForm = resetForm
Vue.prototype.addDateRange = addDateRange Vue.prototype.addDateRange = addDateRange
Vue.prototype.addBeginAndEndTime = addBeginAndEndTime Vue.prototype.addBeginAndEndTime = addBeginAndEndTime
Vue.prototype.addBeginAndEndTimeNew = addBeginAndEndTimeNew
Vue.prototype.getDictDatas = getDictDatas Vue.prototype.getDictDatas = getDictDatas
Vue.prototype.getDictDatas2 = getDictDatas2 Vue.prototype.getDictDatas2 = getDictDatas2
Vue.prototype.getDictDataLabel = getDictDataLabel Vue.prototype.getDictDataLabel = getDictDataLabel
......
...@@ -105,6 +105,31 @@ export function addBeginAndEndTime(params, dateRange, propName,isTime = true) { ...@@ -105,6 +105,31 @@ export function addBeginAndEndTime(params, dateRange, propName,isTime = true) {
return params; return params;
} }
export function addBeginAndEndTimeNew(params, dateRange, prefixName, propName, isTime = true) {
// 必须传入参数
if (!dateRange) {
return params;
}
// 如果未传递 propName 属性,默认为 time
if (!propName) {
propName = 'Time';
} else {
propName = propName.charAt(0).toUpperCase() + propName.slice(1);
}
if (!prefixName) {
prefixName = ''
}
console.log('dateRange', dateRange)
// 设置参数
if (dateRange[0]) {
params[prefixName + 'Begin' + propName] = dateRange[0] + (isTime ? ' 00:00:00':'');
}
if (dateRange[1]) {
params[prefixName + 'End' + propName] = dateRange[1] + (isTime ? ' 23:59:59' : '');
}
return params;
}
// 字符串格式化(%s ) // 字符串格式化(%s )
export function sprintf(str) { export function sprintf(str) {
var args = arguments, flag = true, i = 1; var args = arguments, flag = true, i = 1;
......
This diff is collapsed.
This diff is collapsed.
...@@ -252,15 +252,20 @@ ...@@ -252,15 +252,20 @@
align="center" align="center"
width="120px" width="120px"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
type="primary" type="primary"
size="small" size="small"
:disabled="scope.row.abnormalDealStatus === 1" :disabled="scope.row.abnormalDealStatus === 1"
@click="() => updateStatus('single', scope.row)" @click="() => updateStatus('single', scope.row)"
style="margin-top: 5px"
>{{ $t("更新状态") }}</el-button >{{ $t("更新状态") }}</el-button
> >
<el-button type="danger" style="margin-top: 5px;" size="small" @click="openError(scope.row)">{{$t('异常')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
...@@ -590,6 +595,7 @@ import { listUser } from "@/api/system/user"; ...@@ -590,6 +595,7 @@ import { listUser } from "@/api/system/user";
//lanbm 2024-05-16 add //lanbm 2024-05-16 add
import { getCurrencyList } from "@/api/ecw/currency"; import { getCurrencyList } from "@/api/ecw/currency";
import unloadingError from "@/views/ecw/box/shippingSea/nodePage/unloading/unloadingError.vue"; import unloadingError from "@/views/ecw/box/shippingSea/nodePage/unloading/unloadingError.vue";
import Template from "@/views/cms/template/index.vue";
export default { export default {
name: "EcwBoxQuery", name: "EcwBoxQuery",
...@@ -597,6 +603,7 @@ export default { ...@@ -597,6 +603,7 @@ export default {
shipmentId: String, shipmentId: String,
}, },
components: { components: {
Template,
costForm, costForm,
regError, regError,
editForm, editForm,
...@@ -746,6 +753,11 @@ export default { ...@@ -746,6 +753,11 @@ export default {
this.currRow = row; this.currRow = row;
this.dialogVisible = true; this.dialogVisible = true;
}, },
/* 打开异常 */
openError(row) {
this.currRow = row;
this.dialogVisible = true;
},
/* 更新状态 */ /* 更新状态 */
updateStatus(type, row) { updateStatus(type, row) {
let orders = []; let orders = [];
......
...@@ -323,7 +323,7 @@ ...@@ -323,7 +323,7 @@
>{{ $t("撤销清关申请") }}</el-button >{{ $t("撤销清关申请") }}</el-button
> >
<!-- <el-button type="danger" style="margin-top: 5px;" size="small" @click="openError(scope.row)">{{$t('异常')}}</el-button> --> <el-button type="danger" style="margin-top: 5px;" size="small" @click="openError(scope.row)">{{$t('异常')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px"> <el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item :label="$t('代理商Agent')" prop="agentId"> <el-form-item :label="$t('代理商Agent')" prop="agentId">
<supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" /> <supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" />
<el-button v-hasPermi="['ecw:supplier:query']" type="text" style="font-size: 13px; margin-left: 240px;" @click="SupplierDetail">{{$t('查看代理商详情')}}</el-button> <el-button v-if="agentObj.agentId" v-hasPermi="['ecw:supplier:query']" type="text" style="font-size: 13px; margin-left: 240px;" @click="SupplierDetail">{{$t('查看代理商详情')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px"> <el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item :label="$t('代理商Agent')" prop="agentId"> <el-form-item :label="$t('代理商Agent')" prop="agentId">
<supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" /> <supplierOutSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" />
<el-button v-hasPermi="['ecw:supplier:query']" type="text" style="font-size: 13px; margin-left: 240px;" @click="SupplierDetail">{{$t('查看代理商详情')}}</el-button> <el-button v-hasPermi="['ecw:supplier:query']" v-if="agentObj.agentId" type="text" style="font-size: 13px; margin-left: 240px;" @click="SupplierDetail">{{$t('查看代理商详情')}}</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="operate-button"> <el-row class="operate-button">
......
...@@ -43,8 +43,8 @@ export default { ...@@ -43,8 +43,8 @@ export default {
(item) => item.areaType == this.areaType (item) => item.areaType == this.areaType
); );
if(this.areaType == 1 || !this.companyType) return allSupplier; if(this.areaType == 1 || !this.companyType) return allSupplier;
return allSupplier.filter((item) => return allSupplier?.filter((item) =>
item.companyTypes.includes(this.companyType) item.companyTypes?.includes(this.companyType)
); );
}, },
}, },
......
...@@ -32,13 +32,22 @@ ...@@ -32,13 +32,22 @@
<el-date-picker v-model="form.followTime" clearable type="datetime" :placeholder="$t('请选择')" :disabled="isView" /> <el-date-picker v-model="form.followTime" clearable type="datetime" :placeholder="$t('请选择')" :disabled="isView" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12" v-if="customerId">
<el-form-item :label="$t('联系人')" required> <el-form-item :label="$t('联系人')" required>
<el-select v-model="form.contactId" clearable :placeholder="$t('请选择')" :disabled="isView" @change="changeContactUser"> <el-select v-model="form.contactId" clearable :placeholder="$t('请选择')" :disabled="isView" @change="changeContactUser">
<el-option v-for="(item, index) in customerContactsList" :key="index" :label="item.name" :value="item.id"> </el-option> <el-option v-for="(item, index) in customerContactsList" :key="index" :label="item.name" :value="item.id"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12" v-else>
<el-form-item :label="$t('联系人')" required>
<div class="contact">
<el-input :value="form.contactName" placeholder="" disabled />
<img src="@/assets/svg/contacts.svg" class="phonebook" @click="ChooseContactDialog = true" />
</div>
</el-form-item>
</el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('联系方式')"> <el-form-item :label="$t('联系方式')">
<el-input v-model="form.contactPhone" disabled /> <el-input v-model="form.contactPhone" disabled />
...@@ -136,9 +145,22 @@ ...@@ -136,9 +145,22 @@
<el-button type="success" @click="customerFollowSubmit(1)">{{ $t("提交结果") }}</el-button> <el-button type="success" @click="customerFollowSubmit(1)">{{ $t("提交结果") }}</el-button>
</div> </div>
</el-dialog> </el-dialog>
<choose-contact-dialog v-if="ChooseContactDialog" :type="2" @choose="changeAllContactUser" @close="ChooseContactDialog = false" />
</div> </div>
</template> </template>
<style lang="scss" scoped>
.contact {
display: flex;
align-items: center;
justify-content: center;
img.phonebook {
width: 30px;
height: 30px;
margin-left: 10px;
cursor: pointer;
}
}
</style>
<script> <script>
import { createCustomerFollow, getCustomerFollowPage, getCustomerFollowPage2, addCustomerFollow, getCustomerFollowList, editCustomerFollow, getFollowupNewNumber } from "@/api/ecw/customerFollow" import { createCustomerFollow, getCustomerFollowPage, getCustomerFollowPage2, addCustomerFollow, getCustomerFollowList, editCustomerFollow, getFollowupNewNumber } from "@/api/ecw/customerFollow"
import { getCustomerContactsSelect } from "@/api/ecw/customerContacts" import { getCustomerContactsSelect } from "@/api/ecw/customerContacts"
...@@ -149,7 +171,7 @@ import { listAllSimpl, listServiceUser, listSimpleUsers } from "@/api/system/use ...@@ -149,7 +171,7 @@ import { listAllSimpl, listServiceUser, listSimpleUsers } from "@/api/system/use
import { parseTime } from "@/utils/ruoyi" import { parseTime } from "@/utils/ruoyi"
import FileUpload from "@/components/FileUpload/fileUpload" import FileUpload from "@/components/FileUpload/fileUpload"
import { formatDate } from "@/utils/index" import { formatDate } from "@/utils/index"
import { log } from "util" import ChooseContactDialog from "@/components/ChooseContactDialog"
export default { export default {
/** /**
* 客户跟进 * 客户跟进
...@@ -165,10 +187,12 @@ export default { ...@@ -165,10 +187,12 @@ export default {
customerService: Number customerService: Number
}, },
components: { components: {
ChooseContactDialog,
FileUpload FileUpload
}, },
data() { data() {
return { return {
ChooseContactDialog: false,
fileType: ["doc", "xls", "ppt", "txt", "pdf", "png", "jpg", "jpeg"], fileType: ["doc", "xls", "ppt", "txt", "pdf", "png", "jpg", "jpeg"],
DICT_TYPE, DICT_TYPE,
getDictDataLabel, getDictDataLabel,
...@@ -240,6 +264,38 @@ export default { ...@@ -240,6 +264,38 @@ export default {
}) })
} }
}, },
changeAllContactUser(item) {
console.log(item)
if (item) {
this.form.contactName = item.contactsName
this.form.customerId = item.customerId
this.form.contactPhone = "+" + item.areaCode + item.phoneNew
if (item.customerService) this.form.followUserId = item.customerService
if (item.customerNumber) this.form.customerNumber = item.customerNumber
} else {
this.form.contactName = null
this.form.contactPhone = null
}
this.ChooseContactDialog = false
},
changeContactUser(val) {
if (val) {
for (const item of this.customerContactsList) {
if (item.id == val) {
this.form.contactName = item.name
this.form.customerId = item.customerId
this.form.contactPhone = "+" + item.areaCode + item.phoneNew
if (item.customerService) this.form.followUserId = item.customerService
if (item.customerNumber) this.form.customerNumber = item.customerNumber
break
}
}
} else {
this.form.contactName = null
this.form.contactPhone = null
}
},
getOfferList() { getOfferList() {
getOfferPage(this.queryParams).then((response) => { getOfferPage(this.queryParams).then((response) => {
this.offerList = response.data.list this.offerList = response.data.list
...@@ -292,22 +348,6 @@ export default { ...@@ -292,22 +348,6 @@ export default {
} }
} }
}, },
changeContactUser(val) {
if (val) {
for (const item of this.customerContactsList) {
if (item.id == val) {
this.form.contactName = item.name
this.form.customerId = item.customerId
this.form.contactPhone = "+" + item.areaCode + item.phoneNew
if (item.customerNumber) this.form.customerNumber = item.customerNumber
break
}
}
} else {
this.form.contactName = null
this.form.contactPhone = null
}
},
customerFollowSubmit(status) { customerFollowSubmit(status) {
console.log(this.form) console.log(this.form)
this.$refs["customerFollowForm"].validate((valid) => { this.$refs["customerFollowForm"].validate((valid) => {
......
...@@ -109,6 +109,11 @@ ...@@ -109,6 +109,11 @@
<el-form-item :label="$t('入仓时间:')"> <el-form-item :label="$t('入仓时间:')">
<el-date-picker v-model="rucangtime" @change="changeDate" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" /> <el-date-picker v-model="rucangtime" @change="changeDate" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="-" :start-placeholder="$t('开始日期')" :end-placeholder="$t('结束日期')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发仓')" prop="startWarehouseIds">
<el-select v-model="queryParams.startWarehouseIds" multiple :placeholder="$t('请选择始发仓')" clearable @change="handleQuery">
<el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('目的国')" prop="destCountryId"> <el-form-item :label="$t('目的国')" prop="destCountryId">
<el-select v-model="destCountryId" multiple :placeholder="$t('请选择目的国')" clearable @change="handleQuery"> <el-select v-model="destCountryId" multiple :placeholder="$t('请选择目的国')" clearable @change="handleQuery">
<el-option v-for="item in AddressProvince" :key="item.guojia" :label="item.guojiaName" :value="item.guojia"></el-option> <el-option v-for="item in AddressProvince" :key="item.guojia" :label="item.guojiaName" :value="item.guojia"></el-option>
...@@ -184,10 +189,11 @@ ...@@ -184,10 +189,11 @@
<span style="color: red" v-if="row.isExternalWarehouse">({{ $t("外部仓") }})</span> <span style="color: red" v-if="row.isExternalWarehouse">({{ $t("外部仓") }})</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('运输方式/目的地')" align="center" prop="transportId"> <el-table-column :label="$t('运输方式-渠道/目的仓')" align="center" prop="transportId">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" />
/ {{ row.objectiveName }} <template v-if="row.channelName"> - {{ row.channelName }} </template>
/ {{ row.dstWarehouseName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('控货')" align="center" prop="transportId"> <el-table-column :label="$t('控货')" align="center" prop="transportId">
...@@ -239,9 +245,9 @@ ...@@ -239,9 +245,9 @@
<el-input v-model.trim="queryOfferParams.relationAreaCode" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" @input="queryOfferParams.relationAreaCode = queryOfferParams.relationAreaCode.replace(/\s+/g, '')" /> <el-input v-model.trim="queryOfferParams.relationAreaCode" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" @input="queryOfferParams.relationAreaCode = queryOfferParams.relationAreaCode.replace(/\s+/g, '')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发地')" prop="departureId"> <el-form-item :label="$t('始发仓')" prop="startWarehouseIds">
<el-select v-model="queryOfferParams.departureId" :placeholder="$t('请选择始发地')" clearable> <el-select v-model="queryParams.startWarehouseIds" multiple :placeholder="$t('请选择始发仓')" clearable @change="handleQuery">
<el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -308,14 +314,15 @@ ...@@ -308,14 +314,15 @@
<template v-slot="{ row }"> +{{ row.relationAreaCode }}{{ row.relationPhone }} </template> <template v-slot="{ row }"> +{{ row.relationAreaCode }}{{ row.relationPhone }} </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('始发仓')"> <el-table-column :label="$t('始发仓')">
<template v-slot="{ row }"> <template slot-scope="{ row }">
{{ getWarehouse(row.startWarehouseId) }} {{ row.startWarehouseName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('运输方式/目的地')"> <el-table-column :label="$t('运输方式-渠道/目的仓')">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportType" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" />
/ {{ row.objectiveName }} <template v-if="row.channelName"> - {{ row.channelName }} </template>
/ {{ row.destWarehouseName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('销售阶段')"> <el-table-column :label="$t('销售阶段')">
...@@ -693,7 +700,11 @@ export default { ...@@ -693,7 +700,11 @@ export default {
getCurrencyList().then((response) => { getCurrencyList().then((response) => {
this.currecyList = response.data this.currecyList = response.data
}) })
getTradeCityList().then((res) => (this.tradeCityList = res.data)) getWarehouseList().then((res) => {
this.tradeCityList = res.data
this.warehouseList = res.data
})
// getTradeCityList().then((res) => (this.tradeCityList = res.data))
//获取信用类型 //获取信用类型
getCreditRulePage({ page: 1, rows: 999, type: 2 }).then((r) => { getCreditRulePage({ page: 1, rows: 999, type: 2 }).then((r) => {
this.creditTypeList = r.data.list this.creditTypeList = r.data.list
...@@ -827,6 +838,7 @@ export default { ...@@ -827,6 +838,7 @@ export default {
data() { data() {
return { return {
tradeCityList: [], tradeCityList: [],
warehouseList: [],
queryTmp: { queryTmp: {
createTime: ["", ""] createTime: ["", ""]
}, },
...@@ -955,6 +967,10 @@ export default { ...@@ -955,6 +967,10 @@ export default {
exportCityList() { exportCityList() {
return this.tradeCityList.filter((item) => item.type == 2) return this.tradeCityList.filter((item) => item.type == 2)
}, },
exportWarehouseList() {
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter((item) => item.tradeType == 2 || item.tradeType == 3)
},
permissions() { permissions() {
return this.$store.state.user.permissions return this.$store.state.user.permissions
}, },
......
This diff is collapsed.
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<div slot="header" class="card-title">{{$t('报价单详情')}}</div> <div slot="header" class="card-title">{{$t('报价单详情')}}</div>
<!-- 列表 --> <!-- 列表 -->
<div class="offer-header"> <div class="offer-header">
<span style="font-size: 15px;">{{$t('报价单号')}}{{list.number}}</span> <span style="font-size: 15px;">{{$t('报价单号')}}{{list.number}} - <dict-tag :type="DICT_TYPE.ECW_OFFER_STATUS" :value="list.status" /></span>
<div class="btns"> <div class="btns">
<el-button v-hasPermi="['ecw:offer:update']" size="mini" type="primary" v-if="[4,5,6].indexOf(list.status) == -1" @click="$router.push('edit?id=' + offerId)">{{$t('编辑')}}</el-button> <el-button v-hasPermi="['ecw:offer:update']" size="mini" type="primary" v-if="[4,5,6].indexOf(list.status) == -1" @click="$router.push('edit?id=' + offerId)">{{$t('编辑')}}</el-button>
<el-button v-hasPermi="['ecw:offer:loglist']" type="primary" v-if="[1,3,7].indexOf(list.status) > -1" size="mini" @click="handleAdd">{{$t('跟进')}}</el-button> <el-button v-hasPermi="['ecw:offer:loglist']" type="primary" v-if="[1,3,7].indexOf(list.status) > -1" size="mini" @click="handleAdd">{{$t('跟进')}}</el-button>
......
...@@ -18,9 +18,9 @@ ...@@ -18,9 +18,9 @@
<el-input v-model.trim="queryParams.relationAreaCode" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" @input="queryParams.relationAreaCode = queryParams.relationAreaCode.replace(/\s+/g, '')" /> <el-input v-model.trim="queryParams.relationAreaCode" :placeholder="$t('请输入客户')" clearable @keyup.enter.native="handleQuery" @input="queryParams.relationAreaCode = queryParams.relationAreaCode.replace(/\s+/g, '')" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('始发地')" prop="departureId"> <el-form-item :label="$t('始发仓')" prop="startWarehouseId">
<el-select v-model="queryParams.departureId" :placeholder="$t('请选择始发地')" clearable> <el-select v-model="queryParams.startWarehouseId" multiple :placeholder="$t('请选择始发仓')" clearable @change="handleQuery">
<el-option v-for="item in exportCityList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option> <el-option v-for="item in exportWarehouseList" :label="$l(item, 'title')" :value="item.id" :key="item.id"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
...@@ -124,11 +124,12 @@ ...@@ -124,11 +124,12 @@
<el-table-column :label="$t('联系人')" align="left" prop="relationName" width="120" /> <el-table-column :label="$t('联系人')" align="left" prop="relationName" width="120" />
<el-table-column :label="$t('联系电话')" align="left" prop="relationPhone" width="150" /> <el-table-column :label="$t('联系电话')" align="left" prop="relationPhone" width="150" />
<el-table-column :label="$t('重要程序')" align="center" prop="importance" /> <el-table-column :label="$t('重要程序')" align="center" prop="importance" />
<el-table-column :label="$t('始发地')" align="left" prop="departureName" /> <el-table-column :label="$t('始发仓')" align="left" prop="startWarehouseName" />
<el-table-column :label="$t('目的地')" align="center" prop="objectiveName" /> <el-table-column :label="$t('运输方式-渠道/目的仓')">
<el-table-column :label="$t('运输方式')" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
{{ $l(transportTypes[row.transportType], "label") }} <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="row.transportId" />
<template v-if="row.channelName"> - {{ row.channelName }} </template>
/ {{ row.destWarehouseName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('销售阶段')" align="left" width="100"> <el-table-column :label="$t('销售阶段')" align="left" width="100">
...@@ -141,12 +142,6 @@ ...@@ -141,12 +142,6 @@
<span>{{ parseTime(scope.row.stopTime, "{y}-{m}-{d}") }}</span> <span>{{ parseTime(scope.row.stopTime, "{y}-{m}-{d}") }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('运输方式')" align="left">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
</template>
</el-table-column>
<el-table-column :label="$t('预计销售额')" align="left" prop="estCost" width="160"> <el-table-column :label="$t('预计销售额')" align="left" prop="estCost" width="160">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex"> <div class="" v-for="(item, feeIndex) in row.estCostVO.feeDtoList" :key="feeIndex">
...@@ -207,11 +202,14 @@ import { getChannelList } from "@/api/ecw/channel" ...@@ -207,11 +202,14 @@ import { getChannelList } from "@/api/ecw/channel"
import { getRegionList } from "@/api/ecw/order" import { getRegionList } from "@/api/ecw/order"
import { getCurrencyList } from "@/api/ecw/currency" import { getCurrencyList } from "@/api/ecw/currency"
import { getTradeCityList } from "@/api/ecw/region" import { getTradeCityList } from "@/api/ecw/region"
import { getWarehouseList } from "@/api/ecw/warehouse"
import UserSelector from "@/components/UserSelector" import UserSelector from "@/components/UserSelector"
import Selector from "@/components/Selector" import Selector from "@/components/Selector"
import Template from "@/views/cms/template/index.vue";
export default { export default {
name: "EcwOfferIndex", name: "EcwOfferIndex",
components: { components: {
Template,
Selector, Selector,
UserSelector UserSelector
}, },
...@@ -243,6 +241,7 @@ export default { ...@@ -243,6 +241,7 @@ export default {
startTime: ["", ""], startTime: ["", ""],
endTime: ["", ""] endTime: ["", ""]
}, },
warehouseList: [],
currencyList: [], currencyList: [],
tradeCityList: [], tradeCityList: [],
channelList: [], channelList: [],
...@@ -271,6 +270,10 @@ export default { ...@@ -271,6 +270,10 @@ export default {
}) })
return map return map
}, },
exportWarehouseList() {
/* tradeType 1 进口,2出口,3进出口 */
return this.warehouseList.filter((item) => item.tradeType == 2 || item.tradeType == 3)
},
exportCityList() { exportCityList() {
return this.tradeCityList.filter((item) => item.type == 2) return this.tradeCityList.filter((item) => item.type == 2)
}, },
...@@ -296,8 +299,11 @@ export default { ...@@ -296,8 +299,11 @@ export default {
if (this.$route.fullPath.indexOf("dept") > -1) { if (this.$route.fullPath.indexOf("dept") > -1) {
this.dept = true this.dept = true
} }
getTradeCityList().then((res) => (this.tradeCityList = res.data)) // getTradeCityList().then((res) => (this.tradeCityList = res.data))
getWarehouseList().then((res) => {
this.tradeCityList = res.data
this.warehouseList = res.data
})
getCurrencyList().then((res) => { getCurrencyList().then((res) => {
this.currencyList = res.data this.currencyList = res.data
}) })
...@@ -496,6 +502,10 @@ export default { ...@@ -496,6 +502,10 @@ export default {
formatQuery() { formatQuery() {
let obj = {} let obj = {}
//目的国 //目的国
if (this.startWarehouseId != null && this.startWarehouseId != "") {
obj.startWarehouseIds = this.startWarehouseId
}
//目的国
if (this.destCountryId != null && this.destCountryId != "") { if (this.destCountryId != null && this.destCountryId != "") {
obj.destCountryIds = this.destCountryId obj.destCountryIds = this.destCountryId
} }
......
...@@ -13,24 +13,32 @@ ...@@ -13,24 +13,32 @@
<el-divider></el-divider> <el-divider></el-divider>
<el-form label-width="100px" inline> <el-form label-width="100px" inline>
<el-form-item :label="$t('订单号') + ':'" <el-form-item :label="$t('订单号') + ':'"
><div class="content"> >
<div class="content">
{{ orderDetails.orderNo }} {{ orderDetails.orderNo }}
</div></el-form-item </div>
</el-form-item
> >
<el-form-item :label="$t('发货人') + ':'" <el-form-item :label="$t('发货人') + ':'"
><div class="content"> >
<div class="content">
{{ orderDetails.consignorVO ? orderDetails.consignorVO.name : "" }} {{ orderDetails.consignorVO ? orderDetails.consignorVO.name : "" }}
</div></el-form-item </div>
</el-form-item
> >
<el-form-item :label="$t('唛头')" <el-form-item :label="$t('唛头')"
><div class="content">{{ orderDetails.marks }}</div></el-form-item >
<div class="content">{{ orderDetails.marks }}</div>
</el-form-item
> >
<el-form-item> <el-form-item>
<el-button <el-button
:disabled="!!processInstanceId || editMode" :disabled="!!processInstanceId || editMode"
@click="addCost" @click="addCost"
>{{ $t("添加申请") }}</el-button >{{ $t("添加申请") }}
></el-form-item </el-button
>
</el-form-item
> >
</el-form> </el-form>
<el-table :data="list"> <el-table :data="list">
...@@ -105,26 +113,36 @@ ...@@ -105,26 +113,36 @@
<el-table-column :label="$t('操作')"> <el-table-column :label="$t('操作')">
<template v-slot:default="scope"> <template v-slot:default="scope">
<el-tag v-if="scope.row.status !== 0 && !scope.row.editMode">{{ <el-tag v-if="scope.row.status !== 0 && !scope.row.editMode">{{
STATUS[scope.row.status] STATUS[scope.row.status]
}}</el-tag> }}
</el-tag>
<!--el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button--> <!--el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button-->
<el-button <el-button
type="text" type="text"
v-if="modifable(scope.$index)" v-if="modifable(scope.$index)"
@click="modify(scope.row)" @click="modify(scope.row)"
>{{ $t("修改") }}</el-button >{{ $t("修改") }}
</el-button
> >
<el-button <el-button
type="text" type="text"
v-if="scope.row.status === 0" v-if="scope.row.status === 0"
@click="del(scope.$index)" @click="del(scope.$index)"
>删除</el-button >删除
</el-button
>
<el-button
type="text"
v-if="scope.row.id && scope.row.applicationFee === 0"
@click="deleteByFeeIsZero(scope.row.id)"
>删除
</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div style="padding: 20px"> <div style="padding: 20px">
<work-flow xmlkey="free_apply" v-model="selectedUsers" /> <work-flow xmlkey="free_apply" v-model="selectedUsers"/>
</div> </div>
<div style="text-align: center; margin-top: 20px"> <div style="text-align: center; margin-top: 20px">
<el-button <el-button
...@@ -133,25 +151,29 @@ ...@@ -133,25 +151,29 @@
style="margin-right: 30px" style="margin-right: 30px"
:disabled="!feeList.length && !editMode" :disabled="!feeList.length && !editMode"
@click="submit" @click="submit"
>{{ $t("提交") }}</el-button >{{ $t("提交") }}
</el-button
> >
<el-button <el-button
type="primary" type="primary"
v-if="processInstanceId" v-if="processInstanceId"
style="margin-right: 30px" style="margin-right: 30px"
@click="goProcessDetail" @click="goProcessDetail"
>{{ $t("审核中") }}</el-button >{{ $t("审核中") }}
</el-button
> >
<el-button <el-button
type="primary" type="primary"
v-if="processInstanceId" v-if="processInstanceId"
style="margin-right: 30px" style="margin-right: 30px"
@click="cancel" @click="cancel"
>{{ $t("取消审核") }}</el-button >{{ $t("取消审核") }}
</el-button
> >
<el-button @click="$emit('update:dialogVisible', false)">{{ <el-button @click="$emit('update:dialogVisible', false)">{{
$t("返回") $t("返回")
}}</el-button> }}
</el-button>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
...@@ -168,13 +190,14 @@ import { ...@@ -168,13 +190,14 @@ import {
getFeeApplicationApproveByOrderId, getFeeApplicationApproveByOrderId,
getBatchFeeByProcessId, getBatchFeeByProcessId,
qetBatchFeeByBusinessId, qetBatchFeeByBusinessId,
getBatchFeeByBusinessId, getBatchFeeByBusinessId, feeApplicationDelete,
} from "@/api/ecw/order"; } from "@/api/ecw/order";
import { getDictDatas, DICT_TYPE } from "@/utils/dict"; import {getDictDatas, DICT_TYPE} from "@/utils/dict";
import workFlow from "@/components/WorkFlow"; import workFlow from "@/components/WorkFlow";
export default { export default {
name: "feeApplication", name: "feeApplication",
components: { workFlow }, components: {workFlow},
props: { props: {
orderId: [Number, String], orderId: [Number, String],
dialogVisible: { dialogVisible: {
...@@ -222,7 +245,7 @@ export default { ...@@ -222,7 +245,7 @@ export default {
if (this.list.findIndex((item) => item.editMode) > -1) return false; if (this.list.findIndex((item) => item.editMode) > -1) return false;
return true; return true;
} }
} }
}, },
created() { created() {
this.getDictDatas(this.DICT_TYPE.AUDIT_STATUS).forEach((e) => { this.getDictDatas(this.DICT_TYPE.AUDIT_STATUS).forEach((e) => {
...@@ -234,7 +257,7 @@ export default { ...@@ -234,7 +257,7 @@ export default {
}); });
// 查询历史申请 // 查询历史申请
feeApplicationListByOrderId({ orderId: this.orderId }).then((res) => { feeApplicationListByOrderId({orderId: this.orderId}).then((res) => {
this.list = res.data; this.list = res.data;
}); });
...@@ -270,6 +293,17 @@ export default { ...@@ -270,6 +293,17 @@ export default {
status: 0, status: 0,
}); });
}, },
deleteByFeeIsZero(id) {
this.$confirm(this.$t("确定要删除此条费用申请么?")).then(() => {
feeApplicationDelete(id).then((r) => {
this.$message({
type: "success",
message: this.$t("删除成功"),
});
this.$emit("update:dialogVisible", false);
});
});
},
submit() { submit() {
// 判断费用申请是否有未填项 // 判断费用申请是否有未填项
const errList = this.feeList.filter((item) => { const errList = this.feeList.filter((item) => {
...@@ -319,7 +353,7 @@ export default { ...@@ -319,7 +353,7 @@ export default {
confirmButtonText: this.$t("确定"), confirmButtonText: this.$t("确定"),
cancelButtonText: this.$t("取消"), cancelButtonText: this.$t("取消"),
}) })
.then(({ value }) => { .then(({value}) => {
let item = this.list.find((e) => e.status === 1); let item = this.list.find((e) => e.status === 1);
feeApplicationCancel({ feeApplicationCancel({
huifu: value, huifu: value,
...@@ -332,7 +366,8 @@ export default { ...@@ -332,7 +366,8 @@ export default {
this.$emit("update:dialogVisible", false); this.$emit("update:dialogVisible", false);
}); });
}) })
.catch(() => {}); .catch(() => {
});
}, },
}, },
watch: { watch: {
...@@ -353,14 +388,17 @@ export default { ...@@ -353,14 +388,17 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.fee-application { .fee-application {
padding: 0 20px; padding: 0 20px;
h1 { h1 {
font-weight: 600; font-weight: 600;
font-size: 20px; font-size: 20px;
} }
.content { .content {
width: 200px; width: 200px;
} }
} }
.my-process-designer { .my-process-designer {
height: calc(100vh - 200px); height: calc(100vh - 200px);
} }
......
...@@ -101,10 +101,14 @@ ...@@ -101,10 +101,14 @@
</el-form-item> </el-form-item>
<el-form-item :label="$t('审核状态')" prop="auditStatus"> <el-form-item :label="$t('审核状态')" prop="auditStatusList">
<el-select v-model="queryParams.auditStatus" :placeholder="$t('选择审核状态')" clearable> <dict-selector
<el-option v-for="auditStatusItem in auditStatusDictDatas" :key="auditStatusItem.id" :label="auditStatusItem.label" :value="auditStatusItem.value" /> multiple
</el-select> clearable
v-model="queryParams.auditStatusList"
:type="DICT_TYPE.AUDIT_STATUS"
></dict-selector>
</el-form-item> </el-form-item>
<el-form-item :label="$t('包装要求')" prop="packaging"> <el-form-item :label="$t('包装要求')" prop="packaging">
...@@ -752,6 +756,9 @@ export default { ...@@ -752,6 +756,9 @@ export default {
}, },
computed: { computed: {
DICT_TYPE() {
return DICT_TYPE
},
getTypeName() { getTypeName() {
return (typeId) => { return (typeId) => {
for (let index in this.typeList) { for (let index in this.typeList) {
...@@ -1023,6 +1030,7 @@ export default { ...@@ -1023,6 +1030,7 @@ export default {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.titleZhParam.value = ""; this.titleZhParam.value = "";
this.queryParams.materialTypes =[]; this.queryParams.materialTypes =[];
this.queryParams.auditStatusList =[];
this.handleQuery(); this.handleQuery();
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
......
This diff is collapsed.
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
> >
<el-select <el-select
v-model="queryParams.attrId" v-model="queryParams.attrId"
:placeholder="$t('选择商品类型')" :placeholder="$t('选择商品属性')"
clearable clearable
@change="handleQuery" @change="handleQuery"
> >
...@@ -133,6 +133,7 @@ ...@@ -133,6 +133,7 @@
<el-form-item :label="$t('目的国')" prop="destCountryId"> <el-form-item :label="$t('目的国')" prop="destCountryId">
<el-select <el-select
v-model="destCountryId" v-model="destCountryId"
multiple
:label="destCountryId" :label="destCountryId"
clearable clearable
@change="handleQuery" @change="handleQuery"
...@@ -147,7 +148,10 @@ ...@@ -147,7 +148,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的地')" prop="destCityId"> <el-form-item :label="$t('目的地')" prop="destCityId">
<el-select v-model="destCityId" clearable @change="handleQuery"> <el-select v-model="destCityId"
multiple
clearable
@change="handleQuery">
<el-option <el-option
v-for="item in AddressCity" v-for="item in AddressCity"
:key="item.shi" :key="item.shi"
...@@ -157,7 +161,10 @@ ...@@ -157,7 +161,10 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('目的仓')" prop="destWarehouseId"> <el-form-item :label="$t('目的仓')" prop="destWarehouseId">
<el-select v-model="destWarehouseId" clearable @change="handleQuery"> <el-select v-model="destWarehouseId"
clearable
multiple
@change="handleQuery">
<el-option <el-option
v-for="item in AddressTown" v-for="item in AddressTown"
:key="item.id" :key="item.id"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment