|
@@ -80,7 +80,12 @@
|
|
<template #purchaseCode="{ item }">
|
|
<template #purchaseCode="{ item }">
|
|
<div style="width: 100%">
|
|
<div style="width: 100%">
|
|
<div v-if="item.purchaseList && item.purchaseList.length > 0">
|
|
<div v-if="item.purchaseList && item.purchaseList.length > 0">
|
|
- <div v-for="(purchase, index) in item.purchaseList" :key="index">
|
|
|
|
|
|
+ <div
|
|
|
|
+ v-for="(purchase, index) in item.purchaseList"
|
|
|
|
+ :key="index"
|
|
|
|
+ class="public-class"
|
|
|
|
+ @click="hdanlePushPurchase(purchase.code)"
|
|
|
|
+ >
|
|
{{ purchase.code }}
|
|
{{ purchase.code }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -600,8 +605,10 @@
|
|
<script setup>
|
|
<script setup>
|
|
import byTable from "@/components/byTable/index";
|
|
import byTable from "@/components/byTable/index";
|
|
import byForm from "@/components/byForm/index";
|
|
import byForm from "@/components/byForm/index";
|
|
-import useUserStore from "@/store/modules/user";
|
|
|
|
import { ElMessage, ElMessageBox } from "element-plus";
|
|
import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
|
+import { computed } from "vue";
|
|
|
|
+import useUserStore from "@/store/modules/user";
|
|
|
|
+const userInfo = useUserStore();
|
|
const tableHeight = ref(0);
|
|
const tableHeight = ref(0);
|
|
const getTableHeight = () => {
|
|
const getTableHeight = () => {
|
|
tableHeight.value = window.innerHeight - 270;
|
|
tableHeight.value = window.innerHeight - 270;
|
|
@@ -684,14 +691,16 @@ const config = computed(() => {
|
|
align: "center",
|
|
align: "center",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- {
|
|
|
|
- attrs: {
|
|
|
|
- label: "客户",
|
|
|
|
- slot: "customer",
|
|
|
|
- "min-width": 140,
|
|
|
|
- fixed: "left",
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
|
|
+ isShowSalesmanArrange.value
|
|
|
|
+ ? {
|
|
|
|
+ attrs: {
|
|
|
|
+ label: "客户",
|
|
|
|
+ slot: "customer",
|
|
|
|
+ "min-width": 140,
|
|
|
|
+ fixed: "left",
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ : {},
|
|
{
|
|
{
|
|
attrs: {
|
|
attrs: {
|
|
label: "产品",
|
|
label: "产品",
|
|
@@ -699,35 +708,41 @@ const config = computed(() => {
|
|
width: 140,
|
|
width: 140,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
- {
|
|
|
|
- attrs: {
|
|
|
|
- label: "条款",
|
|
|
|
- slot: "tags",
|
|
|
|
- width: 80,
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- attrs: {
|
|
|
|
- label: "定金",
|
|
|
|
- prop: "earnest",
|
|
|
|
- width: 100,
|
|
|
|
- },
|
|
|
|
- render(money) {
|
|
|
|
- return proxy.moneyFormat(money, 2);
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- attrs: {
|
|
|
|
- label: "定金到账时间",
|
|
|
|
- prop: "claimTime",
|
|
|
|
- width: 110,
|
|
|
|
- },
|
|
|
|
- render(time) {
|
|
|
|
- if (time) {
|
|
|
|
- return time.slice(0, 11);
|
|
|
|
|
|
+ isShowSalesFinancemanArrange.value
|
|
|
|
+ ? {
|
|
|
|
+ attrs: {
|
|
|
|
+ label: "条款",
|
|
|
|
+ slot: "tags",
|
|
|
|
+ width: 80,
|
|
|
|
+ },
|
|
}
|
|
}
|
|
- },
|
|
|
|
- },
|
|
|
|
|
|
+ : {},
|
|
|
|
+ isShowSalesFinancemanArrange.value
|
|
|
|
+ ? {
|
|
|
|
+ attrs: {
|
|
|
|
+ label: "定金",
|
|
|
|
+ prop: "earnest",
|
|
|
|
+ width: 100,
|
|
|
|
+ },
|
|
|
|
+ render(money) {
|
|
|
|
+ return proxy.moneyFormat(money, 2);
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ : {},
|
|
|
|
+ isShowSalesFinancemanArrange.value
|
|
|
|
+ ? {
|
|
|
|
+ attrs: {
|
|
|
|
+ label: "定金到账时间",
|
|
|
|
+ prop: "claimTime",
|
|
|
|
+ width: 110,
|
|
|
|
+ },
|
|
|
|
+ render(time) {
|
|
|
|
+ if (time) {
|
|
|
|
+ return time.slice(0, 11);
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ }
|
|
|
|
+ : {},
|
|
{
|
|
{
|
|
attrs: {
|
|
attrs: {
|
|
label: "交接单",
|
|
label: "交接单",
|
|
@@ -870,9 +885,41 @@ const headerList = ref([
|
|
slot: "slot12",
|
|
slot: "slot12",
|
|
},
|
|
},
|
|
]);
|
|
]);
|
|
|
|
+const isShowSalesmanArrange = ref(true);
|
|
|
|
+const isShowSalesFinancemanArrange = ref(true);
|
|
|
|
+const checkShow = () => {
|
|
|
|
+ // 当前账号角色如果不是业务总监、总经理、业务员,则不能查看
|
|
|
|
+ if (
|
|
|
|
+ !(
|
|
|
|
+ userInfo.roles.includes("salesDirector") ||
|
|
|
|
+ userInfo.roles.includes("ceo") ||
|
|
|
|
+ userInfo.roles.includes("salesman")
|
|
|
|
+ )
|
|
|
|
+ ) {
|
|
|
|
+ isShowSalesmanArrange.value = false;
|
|
|
|
+ }
|
|
|
|
+ // 当前账号角色如果不是业务总监、总经理、业务员、财务,则不能查看
|
|
|
|
+ if (
|
|
|
|
+ !(
|
|
|
|
+ userInfo.roles.includes("salesDirector") ||
|
|
|
|
+ userInfo.roles.includes("ceo") ||
|
|
|
|
+ userInfo.roles.includes("salesman") ||
|
|
|
|
+ userInfo.roles.includes("financeOfficer")
|
|
|
|
+ )
|
|
|
|
+ ) {
|
|
|
|
+ isShowSalesFinancemanArrange.value = false;
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+checkShow();
|
|
const arrangeInit = () => {
|
|
const arrangeInit = () => {
|
|
for (let i = 0; i < headerList.value.length; i++) {
|
|
for (let i = 0; i < headerList.value.length; i++) {
|
|
const element = headerList.value[i];
|
|
const element = headerList.value[i];
|
|
|
|
+ if (
|
|
|
|
+ ["9", "11", "12"].includes(element.value) &&
|
|
|
|
+ !isShowSalesmanArrange.value
|
|
|
|
+ ) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
let width = 150;
|
|
let width = 150;
|
|
if (element.label.length > 5) {
|
|
if (element.label.length > 5) {
|
|
width = 250;
|
|
width = 250;
|
|
@@ -894,9 +941,11 @@ const arrangeInit = () => {
|
|
isNeedHeaderSlot: false,
|
|
isNeedHeaderSlot: false,
|
|
width: 120,
|
|
width: 120,
|
|
};
|
|
};
|
|
- config.value.push({
|
|
|
|
- attrs,
|
|
|
|
- });
|
|
|
|
|
|
+ if (isShowSalesmanArrange.value) {
|
|
|
|
+ config.value.push({
|
|
|
|
+ attrs,
|
|
|
|
+ });
|
|
|
|
+ }
|
|
};
|
|
};
|
|
arrangeInit();
|
|
arrangeInit();
|
|
const headerData = ref({});
|
|
const headerData = ref({});
|
|
@@ -1095,10 +1144,14 @@ const handleClickLook = (row, purchase, node) => {
|
|
getRecordsData();
|
|
getRecordsData();
|
|
};
|
|
};
|
|
const handleClickAddRecord = () => {
|
|
const handleClickAddRecord = () => {
|
|
|
|
+ recordsRules.value.documentaryRemark = [
|
|
|
|
+ { required: true, message: "请输入跟单记录", trigger: "blur" },
|
|
|
|
+ ];
|
|
let type = selectNode.value.value;
|
|
let type = selectNode.value.value;
|
|
let label = "";
|
|
let label = "";
|
|
if (type == "6") {
|
|
if (type == "6") {
|
|
label = "验货结论";
|
|
label = "验货结论";
|
|
|
|
+ delete recordsRules.value.documentaryRemark;
|
|
} else if (type == "8") {
|
|
} else if (type == "8") {
|
|
label = "是否收到";
|
|
label = "是否收到";
|
|
} else if (type == "10") {
|
|
} else if (type == "10") {
|
|
@@ -1135,6 +1188,7 @@ const handleClickAddRecord = () => {
|
|
type: "slot",
|
|
type: "slot",
|
|
slotName: "file",
|
|
slotName: "file",
|
|
label: "上传附件",
|
|
label: "上传附件",
|
|
|
|
+ required: type == "6" ? true : false,
|
|
},
|
|
},
|
|
];
|
|
];
|
|
formData.recordsFormData = {
|
|
formData.recordsFormData = {
|
|
@@ -1151,6 +1205,14 @@ const handleClickAddRecord = () => {
|
|
|
|
|
|
const submitRecords = () => {
|
|
const submitRecords = () => {
|
|
recordsForm.value.handleSubmit(() => {
|
|
recordsForm.value.handleSubmit(() => {
|
|
|
|
+ if (selectNode.value.value == "6") {
|
|
|
|
+ if (!formData.recordsFormData.fileList.length > 0) {
|
|
|
|
+ return ElMessage({
|
|
|
|
+ message: "请上传附件",
|
|
|
|
+ type: "info",
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
formLoading.value = true;
|
|
formLoading.value = true;
|
|
formData.recordsFormData.fileList = formData.recordsFormData.fileList.map(
|
|
formData.recordsFormData.fileList = formData.recordsFormData.fileList.map(
|
|
(item) => {
|
|
(item) => {
|
|
@@ -1292,6 +1354,15 @@ const handleClickHeader = (type) => {
|
|
sourceList.value.pagination.documentarySearch = clickNum.value;
|
|
sourceList.value.pagination.documentarySearch = clickNum.value;
|
|
getList();
|
|
getList();
|
|
};
|
|
};
|
|
|
|
+
|
|
|
|
+const hdanlePushPurchase = (code) => {
|
|
|
|
+ proxy.$router.push({
|
|
|
|
+ name: "Purchased",
|
|
|
|
+ query: {
|
|
|
|
+ code: code,
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|