|
@@ -1,259 +1,265 @@
|
|
|
<template>
|
|
<template>
|
|
|
<div>
|
|
<div>
|
|
|
- <el-form ref="form" :model="form" label-width="130px">
|
|
|
|
|
- <headerTitle title="发货信息"></headerTitle>
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="委外申请单编码:"
|
|
|
|
|
- prop="code"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.code }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="采购订单编码:"
|
|
|
|
|
- prop="orderNo"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.orderNo }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="外协单位:"
|
|
|
|
|
- prop="contactName"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.supplierName }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
-
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="外协单位联系人:"
|
|
|
|
|
- prop="linkName"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.linkName }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="计价方式:" style="margin-bottom: 22px">
|
|
|
|
|
- {{ form.pricingWay == 1 ? '按数量计费' : '按重量计费' }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="外协单位电话:"
|
|
|
|
|
- prop="linkPhone"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.linkPhone }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="车辆号:"
|
|
|
|
|
- prop="carNo"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.carNo }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="送货单号:"
|
|
|
|
|
- prop="sendNoteNo"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.sendNoteNo }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item
|
|
|
|
|
- label="订单类型:"
|
|
|
|
|
- prop="sourceTypeName"
|
|
|
|
|
- style="margin-bottom: 22px"
|
|
|
|
|
- >
|
|
|
|
|
- {{ form.sourceTypeName }}
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item prop="files" label="附件:">
|
|
|
|
|
- <div v-if="form.files && form.files?.length">
|
|
|
|
|
- <el-link
|
|
|
|
|
- v-for="link in form.files"
|
|
|
|
|
- :key="link.id"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- :underline="false"
|
|
|
|
|
- @click="downloadFile(link)"
|
|
|
|
|
- >
|
|
|
|
|
- {{ link.name }}
|
|
|
|
|
- </el-link>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12"> </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- </el-form>
|
|
|
|
|
-
|
|
|
|
|
- <headerTitle title="产品清单"></headerTitle>
|
|
|
|
|
- <ele-pro-table
|
|
|
|
|
- ref="table"
|
|
|
|
|
- :needPage="false"
|
|
|
|
|
- :columns="competAnalysisListcolumns"
|
|
|
|
|
- :toolkit="[]"
|
|
|
|
|
- :datasource="detailData.detailList"
|
|
|
|
|
- row-key="id"
|
|
|
|
|
- >
|
|
|
|
|
- <!-- <template v-slot:toolbar>
|
|
|
|
|
- <div class="headbox">
|
|
|
|
|
- <span class="amount">总计:{{detailData.totalAmount}}元</span>
|
|
|
|
|
- <span class="amount">应付金额:{{detailData.payAmount}}元</span>
|
|
|
|
|
- </div>
|
|
|
|
|
- </template> -->
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <headerTitle title="委外单"></headerTitle>
|
|
|
|
|
+ <ele-pro-table ref="table" :needPage="false" :columns="columns" :toolkit="[]" :datasource="list"
|
|
|
|
|
+ row-key="id">
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <template v-slot:type="{ row }">
|
|
|
|
|
+ <div v-if="row.type == 1">采购委外</div>
|
|
|
|
|
+ <div v-if="row.type == 2">直接发货委外</div>
|
|
|
|
|
+ <div v-if="row.type == 3">无采购委外</div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <template v-slot:status="{ row }">
|
|
|
|
|
+ <el-tag>{{ row.status == 1 ? '已发布' : '未发布' }}</el-tag>
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
<template v-slot:technicalDrawings="{ row }">
|
|
<template v-slot:technicalDrawings="{ row }">
|
|
|
|
|
+
|
|
|
<div v-if="row.technicalDrawings && row.technicalDrawings?.length">
|
|
<div v-if="row.technicalDrawings && row.technicalDrawings?.length">
|
|
|
- <el-link
|
|
|
|
|
- v-for="link in row.technicalDrawings"
|
|
|
|
|
- :key="link.id"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- :underline="false"
|
|
|
|
|
- @click="downloadFile(link)"
|
|
|
|
|
- >
|
|
|
|
|
- {{ link.name }}
|
|
|
|
|
- </el-link>
|
|
|
|
|
|
|
+ <el-link v-for="link in row.technicalDrawings" :key="link.id" type="primary" :underline="false"
|
|
|
|
|
+ @click="downloadFile(link)">
|
|
|
|
|
+ {{ link.name }}</el-link>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <template v-slot:files="{ row }">
|
|
|
|
|
+ <div v-if="row.files && row.files?.length">
|
|
|
|
|
+ <el-link v-for="link in row.files" :key="link.id" type="primary" :underline="false" @click="downloadFile(link)">
|
|
|
|
|
+ {{ link.name }}</el-link>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ </template>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
</ele-pro-table>
|
|
</ele-pro-table>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
- import { getFile } from '@/api/system/file';
|
|
|
|
|
- import { getById } from '@/api/bpm/components/outsourcedWarehousing/index';
|
|
|
|
|
|
|
+import { getFile } from '@/api/system/file';
|
|
|
|
|
+import {
|
|
|
|
|
+ applyOutsource,
|
|
|
|
|
+} from '@/api/bpm/components/purchasingManage/outSourceSendCk';
|
|
|
|
|
|
|
|
- export default {
|
|
|
|
|
- props: {
|
|
|
|
|
- businessId: {
|
|
|
|
|
- default: ''
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
|
|
+export default {
|
|
|
|
|
+ components: {
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ props: {
|
|
|
|
|
+ businessId: {
|
|
|
|
|
+ default: ''
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ detailId: '',
|
|
|
|
|
+
|
|
|
|
|
+ list: [],
|
|
|
|
|
+
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ // 表格列配置
|
|
|
|
|
+ columns() {
|
|
|
|
|
+ return [
|
|
|
|
|
+ {
|
|
|
|
|
+ columnKey: 'index',
|
|
|
|
|
+ label: '序号',
|
|
|
|
|
+ type: 'index',
|
|
|
|
|
+ width: 55,
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ showOverflowTooltip: true,
|
|
|
|
|
+ fixed: 'left'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'code',
|
|
|
|
|
+ label: '委外单编码',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'name',
|
|
|
|
|
+ label: '委外单名称',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'workOrderCode',
|
|
|
|
|
+ label: '工单编码',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'taskName',
|
|
|
|
|
+ label: '工序',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'categoryCode',
|
|
|
|
|
+ label: '物品Code',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'categoryName',
|
|
|
|
|
+ label: '名称',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'totalCount',
|
|
|
|
|
+ label: '委外数量',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'totalWeight',
|
|
|
|
|
+ label: '委外重量',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ slot: 'type',
|
|
|
|
|
+ label: '委外类型',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'remark',
|
|
|
|
|
+ label: '备注',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ slot: 'requireDeliveryTime',
|
|
|
|
|
+ label: '预计到货日期',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ minWidth: 70
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'produceRoutingName',
|
|
|
|
|
+ label: '工艺路线',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'warehouseName',
|
|
|
|
|
+ label: '仓库',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ prop: 'createTime',
|
|
|
|
|
+ label: '创建时间',
|
|
|
|
|
+ align: 'center',
|
|
|
|
|
+ minWidth: 70
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ slot: 'status',
|
|
|
|
|
+ label: '状态',
|
|
|
|
|
+ align: 'center'
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '图片附件',
|
|
|
|
|
+ slot: 'technicalDrawings',
|
|
|
|
|
+ action: 'technicalDrawings',
|
|
|
|
|
+ minWidth: 100,
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ {
|
|
|
|
|
+ label: '附件',
|
|
|
|
|
+ slot: 'files',
|
|
|
|
|
+ action: 'files',
|
|
|
|
|
+ minWidth: 100,
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ ];
|
|
|
},
|
|
},
|
|
|
- data() {
|
|
|
|
|
- return {
|
|
|
|
|
- detailId: '',
|
|
|
|
|
- form: {},
|
|
|
|
|
- detailData: {},
|
|
|
|
|
- competAnalysisListcolumns: [
|
|
|
|
|
- {
|
|
|
|
|
- width: 45,
|
|
|
|
|
- type: 'index',
|
|
|
|
|
- columnKey: 'index',
|
|
|
|
|
- align: 'center',
|
|
|
|
|
- fixed: 'left'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- minWidth: 140,
|
|
|
|
|
- prop: 'categoryName',
|
|
|
|
|
- label: '名称',
|
|
|
|
|
- slot: 'categoryName',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- minWidth: 120,
|
|
|
|
|
- prop: 'categoryCode',
|
|
|
|
|
- label: '编码',
|
|
|
|
|
- slot: 'categoryCode',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- minWidth: 100,
|
|
|
|
|
- prop: 'categoryLevelName',
|
|
|
|
|
- label: '类型',
|
|
|
|
|
- slot: 'categoryLevelName',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- width: 160,
|
|
|
|
|
- prop: 'brandNum',
|
|
|
|
|
- label: '牌号',
|
|
|
|
|
- slot: 'brandNum',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- width: 120,
|
|
|
|
|
- prop: 'modelType',
|
|
|
|
|
- label: '型号',
|
|
|
|
|
- slot: 'modelType',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- width: 120,
|
|
|
|
|
- prop: 'specification',
|
|
|
|
|
- label: '规格',
|
|
|
|
|
- slot: 'specification',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- width: 120,
|
|
|
|
|
- prop: 'totalCount',
|
|
|
|
|
- label: '数量',
|
|
|
|
|
- slot: 'totalCount',
|
|
|
|
|
- align: 'center'
|
|
|
|
|
- }
|
|
|
|
|
- ]
|
|
|
|
|
- };
|
|
|
|
|
|
|
+
|
|
|
|
|
+ clientEnvironmentId() {
|
|
|
|
|
+ return this.$store.state.user.info.clientEnvironmentId;
|
|
|
},
|
|
},
|
|
|
- created() {
|
|
|
|
|
- this.getDetailData(this.businessId);
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ created() {
|
|
|
|
|
+ this.getDetailData(this.businessId);
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ downloadFile(file) {
|
|
|
|
|
+ getFile({ objectName: file.storePath }, file.name);
|
|
|
},
|
|
},
|
|
|
- methods: {
|
|
|
|
|
- downloadFile(file) {
|
|
|
|
|
- getFile({ objectName: file.storePath }, file.name);
|
|
|
|
|
- },
|
|
|
|
|
- async getDetailData(id) {
|
|
|
|
|
- this.loading = true;
|
|
|
|
|
- const data = await getById(id);
|
|
|
|
|
- this.loading = false;
|
|
|
|
|
- if (data) {
|
|
|
|
|
- this.form = data;
|
|
|
|
|
- this.detailData = data;
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- getTableValue() {
|
|
|
|
|
- return Promise.resolve(this.form);
|
|
|
|
|
|
|
+ async getDetailData(id) {
|
|
|
|
|
+ this.loading = true;
|
|
|
|
|
+ const data = await applyOutsource(id);
|
|
|
|
|
+ this.loading = false;
|
|
|
|
|
+ if (data) {
|
|
|
|
|
+ this.list = [ data ];
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ handleDetails(row) {
|
|
|
|
|
+ this.$refs.detailsRef.open(row)
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|
|
|
- .ele-dialog-form {
|
|
|
|
|
- .el-form-item {
|
|
|
|
|
- margin-bottom: 10px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+.ele-dialog-form {
|
|
|
|
|
+ .el-form-item {
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
- .headbox {
|
|
|
|
|
- display: flex;
|
|
|
|
|
- justify-content: flex-start;
|
|
|
|
|
- align-items: center;
|
|
|
|
|
|
|
+.headbox {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: flex-start;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
|
|
|
- .amount {
|
|
|
|
|
- font-size: 14px;
|
|
|
|
|
- font-weight: bold;
|
|
|
|
|
- margin-right: 20px;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .amount {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ margin-right: 20px;
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|