|
@@ -32,8 +32,7 @@
|
|
|
<el-popover placement="top" width="300" trigger="hover">
|
|
|
<ul>
|
|
|
<li>
|
|
|
- <span>上线商品编号:</span
|
|
|
- ><span>{{ sitem.skuCode }}</span>
|
|
|
+ <span>上线商品编号:</span><span>{{ sitem.skuCode }}</span>
|
|
|
</li>
|
|
|
<li
|
|
|
v-if="
|
|
@@ -43,12 +42,10 @@
|
|
|
private_field.some((item) => item == '1')
|
|
|
"
|
|
|
>
|
|
|
- <span>成本商品编号:</span
|
|
|
- ><span>{{ sitem.spuCode }}</span>
|
|
|
+ <span>成本商品编号:</span><span>{{ sitem.spuCode }}</span>
|
|
|
</li>
|
|
|
<li>
|
|
|
- <span>平台商品编码:</span
|
|
|
- ><span>{{ sitem.plat_code }}</span>
|
|
|
+ <span>平台商品编码:</span><span>{{ sitem.plat_code }}</span>
|
|
|
</li>
|
|
|
</ul>
|
|
|
<i class="el-icon-warning-outline fr" slot="reference"></i>
|
|
@@ -59,8 +56,7 @@
|
|
|
<el-popover placement="top" width="300" trigger="hover">
|
|
|
<ul>
|
|
|
<li>
|
|
|
- <span>业务企业编号:</span
|
|
|
- ><span>{{ sitem.companyNo }}</span>
|
|
|
+ <span>业务企业编号:</span><span>{{ sitem.companyNo }}</span>
|
|
|
</li>
|
|
|
</ul>
|
|
|
<i class="el-icon-warning-outline fr" slot="reference"></i>
|
|
@@ -85,10 +81,8 @@
|
|
|
<el-tag
|
|
|
:size="'mini'"
|
|
|
v-text="
|
|
|
- (
|
|
|
- options6.find((item) => item.id == sitem.supply_area) ||
|
|
|
- {}
|
|
|
- ).name || '--'
|
|
|
+ (options6.find((item) => item.id == sitem.supply_area) || {})
|
|
|
+ .name || '--'
|
|
|
"
|
|
|
/>
|
|
|
</template>
|
|
@@ -96,8 +90,8 @@
|
|
|
<el-tag
|
|
|
:size="'mini'"
|
|
|
v-text="
|
|
|
- (options4.find((item) => item.id == sitem.is_stock) || {})
|
|
|
- .name || '--'
|
|
|
+ (options4.find((item) => item.id == sitem.is_stock) || {}).name ||
|
|
|
+ '--'
|
|
|
"
|
|
|
/>
|
|
|
</template>
|
|
@@ -105,10 +99,8 @@
|
|
|
<el-tag
|
|
|
:size="'mini'"
|
|
|
v-text="
|
|
|
- (
|
|
|
- options8.find((item) => item.id == sitem.exam_status) ||
|
|
|
- {}
|
|
|
- ).name || '--'
|
|
|
+ (options8.find((item) => item.id == sitem.exam_status) || {})
|
|
|
+ .name || '--'
|
|
|
"
|
|
|
/>
|
|
|
</template>
|
|
@@ -116,15 +108,11 @@
|
|
|
<el-tag
|
|
|
:size="'mini'"
|
|
|
v-text="
|
|
|
- (
|
|
|
- options1.find((item) => item.id == sitem.good_type) ||
|
|
|
- {}
|
|
|
- ).name || '--'
|
|
|
+ (options1.find((item) => item.id == sitem.good_type) || {}).name ||
|
|
|
+ '--'
|
|
|
"
|
|
|
/>
|
|
|
- <span
|
|
|
- v-if="sitem.good_type === '1'"
|
|
|
- style="padding: 0 0 0 5px"
|
|
|
+ <span v-if="sitem.good_type === '1'" style="padding: 0 0 0 5px"
|
|
|
>{{ sitem.moq }}起订/工期{{ sitem.customized }}天</span
|
|
|
>
|
|
|
</template>
|
|
@@ -134,121 +122,89 @@
|
|
|
sitem.noble_name
|
|
|
}}-{{ sitem.gold_price ? sitem.gold_price : "0" }}元/g-{{
|
|
|
sitem.is_gold_price === "0" ? "不" : ""
|
|
|
- }}启用实时金价-{{
|
|
|
- sitem.is_diff === "1" ? "有" : "无"
|
|
|
- }}工差-{{ sitem.config }}-{{ sitem.other_config }}</span
|
|
|
+ }}启用实时金价-{{ sitem.is_diff === "1" ? "有" : "无" }}工差-{{
|
|
|
+ sitem.config
|
|
|
+ }}-{{ sitem.other_config }}</span
|
|
|
>
|
|
|
</template>
|
|
|
</show-data-table>
|
|
|
+
|
|
|
<show-data-table
|
|
|
:newTime="newTime"
|
|
|
v-if="
|
|
|
newTime !== '' &&
|
|
|
private_field &&
|
|
|
private_field.length > 0 &&
|
|
|
- private_field.some((item) => item == '1')
|
|
|
+ private_field.some((item) => item == '2') &&
|
|
|
+ nakelist &&
|
|
|
+ nakelist.length > 0 &&
|
|
|
+ status !== '0'
|
|
|
"
|
|
|
:sitem="sitem"
|
|
|
- :columns="purchase_listCol"
|
|
|
+ :columns="sale_listCol"
|
|
|
>
|
|
|
- <template slot="supplierName">
|
|
|
- <span>{{ sitem.supplierName }}</span>
|
|
|
- <el-popover placement="top" width="300" trigger="hover">
|
|
|
- <ul>
|
|
|
- <li>
|
|
|
- <span>供应商编号:</span
|
|
|
- ><span>{{ sitem.supplierNo }}</span>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- <i class="el-icon-warning-outline fr" slot="reference"></i>
|
|
|
- </el-popover>
|
|
|
- </template>
|
|
|
- <template slot="is_auth">
|
|
|
- <el-tag
|
|
|
- :size="'mini'"
|
|
|
- v-text="
|
|
|
- (options3.find((item) => item.id == sitem.is_auth) || {})
|
|
|
- .name || '--'
|
|
|
- "
|
|
|
- />
|
|
|
+ <template slot="yz_cat_info">
|
|
|
+ <span v-for="(si, sii) in sitem.yz_cat_info" :key="si.yz_cat_id">
|
|
|
+ <span v-if="sii !== 0">/</span> <span>{{ si.yz_cat_name }}</span>
|
|
|
+ </span>
|
|
|
</template>
|
|
|
-
|
|
|
- <template slot="is_step">
|
|
|
+ <template slot="is_support_barter">
|
|
|
<el-tag
|
|
|
:size="'mini'"
|
|
|
v-text="
|
|
|
- (options7.find((item) => item.id == sitem.is_step) || {})
|
|
|
- .name || '--'
|
|
|
+ (
|
|
|
+ is_support_barter_list.find(
|
|
|
+ (item) => item.value == sitem.is_support_barter
|
|
|
+ ) || {}
|
|
|
+ ).label || '--'
|
|
|
"
|
|
|
/>
|
|
|
</template>
|
|
|
-
|
|
|
<template slot="nakelist">
|
|
|
- <div v-if="nakelist">
|
|
|
- <el-table
|
|
|
- :data="nakelist"
|
|
|
- :size="'mini'"
|
|
|
- border
|
|
|
- stripe
|
|
|
- style="width: 99%; margin: 10px 10px 10px 0"
|
|
|
- >
|
|
|
- <el-table-column prop="min_num" label="起订量(>=)" />
|
|
|
- <el-table-column prop="nake_fee" label="成本单价" />
|
|
|
- <el-table-column prop="cost_fee" label="工艺费" />
|
|
|
- <el-table-column prop="delivery_fee" label="物流费" />
|
|
|
- <el-table-column prop="cert_fee" label="证书费" />
|
|
|
- <el-table-column prop="mark_fee" label="加标费" />
|
|
|
- <el-table-column prop="package_fee" label="包装费" />
|
|
|
- <el-table-column prop="other_fee" label="其他费用" />
|
|
|
- <el-table-column prop="nake_total" label="成本合计" />
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- <div v-else>--</div>
|
|
|
- </template>
|
|
|
- </show-data-table>
|
|
|
- <show-data-table
|
|
|
- :newTime="newTime"
|
|
|
- v-if="
|
|
|
- newTime !== '' &&
|
|
|
- private_field &&
|
|
|
- private_field.length > 0 &&
|
|
|
- private_field.some((item) => item == '2') &&
|
|
|
- ladderlist &&
|
|
|
- ladderlist.length > 0
|
|
|
- "
|
|
|
- :sitem="sitem"
|
|
|
- :columns="sale_listCol"
|
|
|
- >
|
|
|
- <template slot="ladderlist">
|
|
|
<el-table
|
|
|
- :data="ladderlist"
|
|
|
+ :data="nakelist"
|
|
|
:size="'mini'"
|
|
|
border
|
|
|
stripe
|
|
|
style="width: 99%; margin: 10px 10px 10px 0"
|
|
|
>
|
|
|
- <el-table-column prop="min_num" label="起订量(>=)" />
|
|
|
- <el-table-column prop="sale_price" label="售价" />
|
|
|
- <el-table-column prop="cost_fee" label="工艺费" />
|
|
|
- <el-table-column prop="market_price" label="市场价" />
|
|
|
- <el-table-column prop="market_platform" label="对比平台" />
|
|
|
- <el-table-column prop="status" label="状态">
|
|
|
- <template slot-scope="scope">{{
|
|
|
- scope.row.status === "1" ? "启用" : "禁用"
|
|
|
- }}</template>
|
|
|
+ <el-table-column label="系统阶梯" width="80px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <i
|
|
|
+ v-if="sitem.good_ladder_id === scope.row.id"
|
|
|
+ class="el-icon-check"
|
|
|
+ style="color: #1890ff; font-size: 16px; font-weight: bolder"
|
|
|
+ /> </template
|
|
|
+ ></el-table-column>
|
|
|
+ <el-table-column prop="min_num" label="采购起订量" />
|
|
|
+ <el-table-column label="销售">
|
|
|
+ <el-table-column prop="start_sale_num" label="起订量">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="sitem.good_ladder_id === scope.row.id">
|
|
|
+ {{ sitem.start_sale_num }}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="sale_good_price" label="系统售价" />
|
|
|
+ <el-table-column prop="sale_cost_fee" label="系统工艺费" />
|
|
|
+ <el-table-column prop="final_price" label="最终售价">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span v-if="sitem.good_ladder_id === scope.row.id">
|
|
|
+ {{ sitem.final_price }}
|
|
|
+ </span>
|
|
|
+ </template></el-table-column
|
|
|
+ >
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
</template>
|
|
|
</show-data-table>
|
|
|
</el-collapse-item>
|
|
|
- <el-collapse-item
|
|
|
- title="上线审批"
|
|
|
- name="1"
|
|
|
- >
|
|
|
+ <el-collapse-item title="上线审批" name="1" v-if="status === '0'">
|
|
|
<online-exam-form
|
|
|
:newTime="newTime"
|
|
|
v-if="newTime !== ''"
|
|
|
:time="sitem.online_time"
|
|
|
+ :sitem="sitem"
|
|
|
:disabled="false"
|
|
|
:isMust="false"
|
|
|
:statusList="[]"
|
|
@@ -271,15 +227,10 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
- <script>
|
|
|
+<script>
|
|
|
import asyncRequest from "@/apis/service/youzan/othgoodsOnline";
|
|
|
import resToken from "@/mixins/resToken";
|
|
|
import { mapGetters } from "vuex";
|
|
|
-import {
|
|
|
- public_listCol,
|
|
|
- purchase_listCol,
|
|
|
- sale_listCol,
|
|
|
-} from "./ShowDataTableColumns";
|
|
|
import onlineExamForm from "./components/online-exam-form";
|
|
|
import {
|
|
|
options1,
|
|
@@ -290,6 +241,9 @@ import {
|
|
|
options6,
|
|
|
options7,
|
|
|
options8,
|
|
|
+ public_listCol,
|
|
|
+ sale_listCol,
|
|
|
+ is_support_barter_list,
|
|
|
} from "./columns";
|
|
|
import { isArray } from "@/utils/validate";
|
|
|
export default {
|
|
@@ -315,17 +269,17 @@ export default {
|
|
|
|
|
|
data() {
|
|
|
return {
|
|
|
- public_listCol: public_listCol,
|
|
|
- purchase_listCol: purchase_listCol,
|
|
|
- sale_listCol: sale_listCol,
|
|
|
- options1: options1,
|
|
|
- options2: options2,
|
|
|
- options3: options3,
|
|
|
- options4: options4,
|
|
|
- options5: options5,
|
|
|
- options6: options6,
|
|
|
- options7: options7,
|
|
|
- options8: options8,
|
|
|
+ public_listCol,
|
|
|
+ sale_listCol,
|
|
|
+ is_support_barter_list,
|
|
|
+ options1,
|
|
|
+ options2,
|
|
|
+ options3,
|
|
|
+ options4,
|
|
|
+ options5,
|
|
|
+ options6,
|
|
|
+ options7,
|
|
|
+ options8,
|
|
|
ladderlist: [],
|
|
|
nakelist: [],
|
|
|
spuCode: "",
|
|
@@ -373,7 +327,6 @@ export default {
|
|
|
if ((e.numStatus ?? "") == "") {
|
|
|
//驳回重新审核
|
|
|
await this.setstatus("提交产品部门审核结果", model);
|
|
|
-
|
|
|
} else if (e.numStatus == "3") {
|
|
|
//点击保存
|
|
|
// return;
|
|
@@ -436,7 +389,7 @@ export default {
|
|
|
if (!this.loading) {
|
|
|
let model = {
|
|
|
skuCode: this.queryId,
|
|
|
- exam_status:e.numStatus,
|
|
|
+ exam_status: e.numStatus,
|
|
|
plat_code: e.plat_code,
|
|
|
remark: e.remark || "",
|
|
|
};
|
|
@@ -444,7 +397,6 @@ export default {
|
|
|
if ((e.numStatus ?? "") == "") {
|
|
|
//驳回重新审核
|
|
|
await this.setstatus("驳回重新审核吗", model);
|
|
|
-
|
|
|
} else if (e.numStatus == "6") {
|
|
|
//点击保存
|
|
|
// return;
|
|
@@ -457,8 +409,6 @@ export default {
|
|
|
},
|
|
|
|
|
|
async setstatus(detail, model) {
|
|
|
-
|
|
|
-
|
|
|
await this.$confirm(`确定要${detail}?`, {
|
|
|
confirmButtonText: "确定",
|
|
|
cancelButtonText: "取消",
|
|
@@ -466,9 +416,9 @@ export default {
|
|
|
})
|
|
|
.then(async () => {
|
|
|
let res = null;
|
|
|
- if(model.exam_status == ""){
|
|
|
+ if (model.exam_status == "") {
|
|
|
res = await asyncRequest.goodupreject(model);
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
res = await asyncRequest.status(model);
|
|
|
}
|
|
|
if (res && res.code === 0) {
|
|
@@ -490,7 +440,6 @@ export default {
|
|
|
|
|
|
refresh(e) {
|
|
|
const { spuCode } = e;
|
|
|
-
|
|
|
let model = {
|
|
|
id: this.queryType === "add" ? spuCode : this.queryId,
|
|
|
type: "view",
|
|
@@ -500,17 +449,16 @@ export default {
|
|
|
async initData() {
|
|
|
this.loading = true;
|
|
|
const { code, message, data } = await asyncRequest.detail({
|
|
|
- skuCode: this.queryId,
|
|
|
+ platform_youzan_id: this.queryId,
|
|
|
});
|
|
|
this.loading = false;
|
|
|
if (code === 0) {
|
|
|
this.sitem = JSON.parse(JSON.stringify(data));
|
|
|
- const { exam_status, cat_info, ladderlist, nakelist, spuCode } =
|
|
|
- this.sitem;
|
|
|
+ const { exam_status, cat_info, ladderlist, nakelist, spuCode } = this.sitem;
|
|
|
this.spuCode = spuCode;
|
|
|
- this.ladderlist = JSON.parse(JSON.stringify(ladderlist));
|
|
|
+ // this.ladderlist = JSON.parse(JSON.stringify(ladderlist));
|
|
|
this.nakelist = JSON.parse(JSON.stringify(nakelist));
|
|
|
- console.log(this.ladderlist);
|
|
|
+ // console.log(this.ladderlist);
|
|
|
let cat = "";
|
|
|
if (cat_info && cat_info.length > 0) {
|
|
|
cat_info.forEach((e, i) => {
|
|
@@ -518,10 +466,27 @@ export default {
|
|
|
});
|
|
|
}
|
|
|
this.sitem.cat = cat;
|
|
|
+ this.sitem.platform_youzan_id = this.queryId;
|
|
|
|
|
|
if (!isArray(this.sitem.good_info_img)) {
|
|
|
this.sitem.good_info_img = this.sitem.good_info_img.split(",");
|
|
|
}
|
|
|
+ this.nakelist.forEach(async (si, sii) => {
|
|
|
+ si.start_sale_num = si.min_num;
|
|
|
+ let { isok, price, sale_cost_fee } = await this.get_new(sii);
|
|
|
+ if (isok === 0) {
|
|
|
+ this.nakelist[sii].sale_good_price = price;
|
|
|
+ this.nakelist[sii].sale_cost_fee = sale_cost_fee;
|
|
|
+ this.nakelist[sii].newTime = new Date().valueOf() + "";
|
|
|
+ } else if (isok >= 100 && isok <= 104) {
|
|
|
+ await this.logout();
|
|
|
+ } else {
|
|
|
+ this.nakelist[sii].sale_good_price = price;
|
|
|
+ this.nakelist[sii].sale_cost_fee = sale_cost_fee;
|
|
|
+ this.nakelist[sii].newTime = new Date().valueOf() + "";
|
|
|
+ }
|
|
|
+ this.$set(this.nakelist, sii, this.nakelist[sii]);
|
|
|
+ });
|
|
|
|
|
|
this.status = exam_status;
|
|
|
this.getNewTime();
|
|
@@ -531,13 +496,28 @@ export default {
|
|
|
this.$message.warning(message);
|
|
|
}
|
|
|
},
|
|
|
+ async get_new(index) {
|
|
|
+ const { min_num } = this.nakelist[index];
|
|
|
+ const { code, data, message } = await asyncRequest.goodupprice({
|
|
|
+ min_num: min_num,
|
|
|
+ spuCode: this.spuCode,
|
|
|
+ });
|
|
|
+ const { sale_price, new_cost_fee } = data;
|
|
|
+ const resModel = {
|
|
|
+ isok: code,
|
|
|
+ price: code === 0 ? sale_price : "0",
|
|
|
+ sale_cost_fee: code === 0 ? new_cost_fee : "0",
|
|
|
+ message: message,
|
|
|
+ };
|
|
|
+ return resModel;
|
|
|
+ },
|
|
|
getNewTime() {
|
|
|
this.newTime = new Date().valueOf();
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
- <style lang="scss" scoped>
|
|
|
+<style lang="scss" scoped>
|
|
|
.othgoodsOnlineDetail {
|
|
|
width: 100%;
|
|
|
box-sizing: border-box;
|
|
@@ -576,4 +556,3 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
-
|