From eb91fd817dce989b3e81eac971068badaa6bcf53 Mon Sep 17 00:00:00 2001
From: yangfeng <wanwan926_4@163.com>
Date: 星期一, 05 二月 2024 16:31:18 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.5.5:10010/r/web/crm-web into dev
---
src/components/makepager/TableCommonView.vue | 1
src/views/sales/quotation/AddQuotationDialog.vue | 4
src/views/sales/salesDetails/AddSalesDetailsDialog.vue | 19 ++-
src/views/other/commonDialog/SelectCommonDialog.vue | 17 +++
src/views/sales/masterOrder/AddMasterOrderDialog.vue | 20 +++
src/api/date.js | 210 ++++++++++++++++++++++++++++++++++++++++++
src/views/sales/salesDetails/index.vue | 4
7 files changed, 264 insertions(+), 11 deletions(-)
diff --git a/src/api/date.js b/src/api/date.js
new file mode 100644
index 0000000..c7ea884
--- /dev/null
+++ b/src/api/date.js
@@ -0,0 +1,210 @@
+export default (() => {
+ const getDateObj = ms => {
+ const now = ms ? new Date(ms) : new Date()
+ const y = now.getFullYear()
+ let m = now.getMonth() + 1
+ m = m > 9 ? m : '0' + m
+ let d = now.getDate()
+ d = d > 9 ? d : '0' + d
+ return { y, m, d }
+ }
+ // 鑾峰彇褰撳墠鏃ユ湡
+ const getCurrentDate = ms => {
+ const dateObj = getDateObj(ms)
+ return '' + dateObj.y + '-' + dateObj.m + '-' + dateObj.d
+ }
+ //鑾峰彇褰撳墠 鍓嶅悗N澶╃殑鏃堕棿
+ const getDateStr = (AddDayCount = 0) => {
+ let dd = new Date()
+ dd.setDate(dd.getDate() + AddDayCount)
+ let y = dd.getFullYear()
+ let m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1) //鑾峰彇褰撳墠鏈堜唤鐨勬棩鏈燂紝涓嶈冻10琛�0
+ let d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() //鑾峰彇褰撳墠鍑犲彿锛屼笉瓒�10琛�0
+ return y + '-' + m + '-' + d
+ }
+ //鑾峰彇鏌愪釜鏃ユ湡 鍓嶅悗N澶╃殑鏃堕棿
+ const getDateDay2 = (time, AddDayCount) => {
+ if (time) {
+ let dd = new Date(time)
+ dd.setDate(dd.getDate() + AddDayCount)
+ let y = dd.getFullYear()
+ let m = (dd.getMonth() + 1) < 10 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1) //鑾峰彇褰撳墠鏈堜唤鐨勬棩鏈燂紝涓嶈冻10琛�0
+ let d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() //鑾峰彇褰撳墠鍑犲彿锛屼笉瓒�10琛�0
+ return y + '-' + m + '-' + d
+ } else {
+ return '--'
+ }
+ }
+ //鑾峰彇褰撳墠骞翠唤
+ const getCurrentYear = ms => {
+ const dateObj = getDateObj(ms)
+ return '' + dateObj.y
+ }
+ // 鑾峰彇褰撳墠鏈堜唤
+ const getCurrentMonth = ms => {
+ const dateObj = getDateObj(ms)
+ return '' + dateObj.y + '-' + dateObj.m
+ }
+ // 鑾峰彇涓婃湀鏈堜唤
+ const getPreviousMonth = ms => {
+ const dateObj = getDateObj(ms)
+ const b = dateObj.m - 1 > 0
+ let y = b ? dateObj.y : dateObj.y - 1
+ let m = b ? dateObj.m - 1 : 12
+ m = m > 9 ? m : '0' + m
+ return '' + y + '-' + m
+ }
+ // 鑾峰彇涓嬫湀鏈堜唤
+ const getNextMonth = ms => {
+ const dateObj = getDateObj(ms)
+ const b = dateObj.m - (-1) != 13;
+ let y = b ? dateObj.y : dateObj.y + 1
+ let m = b ? dateObj.m - (-1) : 1
+ m = m > 9 ? m : '0' + m
+ return '' + y + '-' + m
+ }
+ // 鏍煎紡鍖栨椂闂� ==> yyyy-mm-dd
+ const formatDate = (value, str) => {
+ if (value) {
+ let date_arr = value.split(str)
+ let m = date_arr[1].length == 1 && date_arr[1] < 10 ? '0' + date_arr[1] : date_arr[1]
+ let d = date_arr[2].length == 1 && date_arr[2] < 10 ? '0' + date_arr[2] : date_arr[2]
+ return date_arr[0] + '-' + m + '-' + d
+ } else {
+ return '--'
+ }
+ }
+ const getK = value => {
+ if (value) {
+ let date = new Date(value)
+ return date
+ } else {
+ let v = new Date().getTime()
+ return v
+ }
+ }
+ //杞负鏃堕棿鎴�
+ const formatTime = value => {
+ if (value) {
+ let date = new Date(value)
+ return date.getTime()
+ }
+ }
+ const formatDate2 = (time, format = 'YY-MM-DD hh:mm:ss') => {
+ if (time) {
+ let date = time ? new Date(time) : new Date()
+ let year = date.getFullYear(),
+ month = date.getMonth() + 1, //鏈堜唤鏄粠0寮�濮嬬殑
+ day = date.getDate(),
+ hour = date.getHours(),
+ min = date.getMinutes(),
+ sec = date.getSeconds()
+ let preArr = Array.apply(null, Array(10)).map(function (elem, index) {
+ return '0' + index
+ }) //寮�涓暱搴︿负10鐨勬暟缁� 鏍煎紡涓� 00 01 02 03
+
+ let newTime = format
+ .replace(/YY/g, year)
+ .replace(/MM/g, preArr[month] || month)
+ .replace(/DD/g, preArr[day] || day)
+ .replace(/hh/g, preArr[hour] || hour)
+ .replace(/mm/g, preArr[min] || min)
+ .replace(/ss/g, preArr[sec] || sec)
+
+ return newTime
+ } else {
+ return '--'
+ }
+ }
+
+ const getLastDay = dateStr => {
+ dateStr = dateStr || getCurrentMonth()
+ let nextMonthMS = new Date(getNextMonth(new Date(dateStr).getTime())).getTime()
+ return getCurrentDate(new Date(nextMonthMS - 1000 * 60 * 60 * 24).getTime())
+ }
+
+ // 瀵规瘮鏃堕棿
+ const compareTime = (date1, date2) => {
+ let d1_date1 = new Date(date1),
+ d1_date2 = new Date(date2);
+ let time_span1 = d1_date1.getTime(),
+ time_span2 = d1_date2.getTime();
+ return time_span1 - time_span2;
+ }
+ //鏍煎紡yy-mm month1灏忕殑 month2澶х殑
+ const intervalMonth = (month1, month2) => {
+ let yearMonth, number;
+ let year1 = Number(getCurrentYear(month1));
+ let year2 = Number(getCurrentYear(month2));
+ if (year1 != year2) {
+ yearMonth = (year2 - year1) * 12;
+ } else {
+ yearMonth = 0;
+ }
+ let min = Number(month1.split('-')[1]);
+ let max = Number(month2.split('-')[1]);
+ if (min < max) {
+ number = max - min + yearMonth + 1
+ } else {
+ number = yearMonth - (min - max) + 1
+ }
+ return Number(number);
+ }
+ //鑾峰彇瀛e害鐨勬椂闂� val 渚嬪 yyyy,1 鏈�缁堢粨鏋� yyyy-mm-dd,yyyy-mm-dd
+ const qurterDay = (val) => {
+ let value;
+ let num = val.split(',')[1]
+ if (num == 1) {
+ value = val.split(',')[0] + '-01-01,' + val.split(',')[0] + '-03-31'
+ } else if (num == 2) {
+ value = val.split(',')[0] + '-04-30,' + val.split(',')[0] + '-06-30'
+ } else if (num == 3) {
+ value = val.split(',')[0] + '-07-31,' + val.split(',')[0] + '-09-30'
+ } else if (num == 4) {
+ value = val.split(',')[0] + '-10-30,' + val.split(',')[0] + '-12-31'
+ }
+ return [value, num];
+ }
+ //鑾峰彇鏌愭湀鏈�鍚庝竴澶�
+ const getMonthLastDay = (dateStr) => {
+ let dateObj = getNextMonth(dateStr)
+ let date = getDateDay2(dateObj + '-01', -1)
+ return date
+ }
+ /*鑾峰彇褰撳墠鏃ユ湡*/
+ const getWeekdayTime = (value) => {
+ let d = new Date(value)
+ let week = d.getDay()
+ let weekday = ''
+ if (week == 0)
+ weekday = '鏄熸湡鏃�'
+ else if (week == 1)
+ weekday = '鏄熸湡涓�'
+ else if (week == 2)
+ weekday = '鏄熸湡浜�'
+ else if (week == 3)
+ weekday = '鏄熸湡涓�'
+ else if (week == 4)
+ weekday = '鏄熸湡鍥�'
+ else if (week == 5)
+ weekday = '鏄熸湡浜�'
+ else if (week == 6)
+ weekday = '鏄熸湡鍏�'
+ return weekday
+ }
+ //璁$畻褰撳墠鏃堕棿鍒颁粖澶╃粨鏉熸椂杩樺墿澶氬皯 姣
+ const getRestOfDayTime = () => {
+ let x = new Date();
+ x.setHours(0, 0, 0, 0);
+ let y = new Date();
+ return 24 * 3600 * 1000 - (y.getTime() - x.getTime())
+ }
+ /* 鐢ㄤ簬鏈堟棩杩欑闇�瑕佸姞鍓嶇疆0鐨勬柟娉�
+ * @param num 闇�瑕佸姞0鐨勫弬鏁� string | number
+ * @return 缁撴灉 濮嬬粓淇濊瘉缁撴灉涓哄瓧绗︿覆 string
+ */
+ const paddingZero = (num) => {
+ return num < 10 ? "0" + num : String(num)
+ }
+ return { paddingZero, getDateObj, getCurrentDate, getDateStr, getDateDay2, getCurrentYear, getCurrentMonth, getPreviousMonth, getNextMonth, formatDate, formatDate2, formatTime, getK, compareTime, getLastDay, intervalMonth, getMonthLastDay, qurterDay, getWeekdayTime, getRestOfDayTime }
+})()
diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 9cf911e..584763a 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/src/components/makepager/TableCommonView.vue
@@ -7,6 +7,7 @@
:data="tableList.tableInfomation"
tooltip-effect="dark"
:height="'calc(100% - 0px)'"
+ :max-height="tableList.maxHeight"
style="width: 100%"
:lazy="tableList.lazy"
:show-summary="showSummary.show"
diff --git a/src/views/other/commonDialog/SelectCommonDialog.vue b/src/views/other/commonDialog/SelectCommonDialog.vue
index 4da1e9c..2a0acf5 100644
--- a/src/views/other/commonDialog/SelectCommonDialog.vue
+++ b/src/views/other/commonDialog/SelectCommonDialog.vue
@@ -29,6 +29,7 @@
</div>
</div>
<TableCommonView
+ class="bg-list"
ref="tableListRef"
:table-list="tableList"
:select-box="editCommonConfig.isSelectBox"
@@ -74,6 +75,7 @@
isSelectBox:false,
title: "",
clientId: 0,
+ isRequest:true,
client_name: "",
tableInfomation: []
}
@@ -175,6 +177,7 @@
this.showCol = ["鎶ヤ环鍗曞彿", "閿�鍞礋璐d汉"]
this.tableList = {
selectIndex: true,
+
tableInfomation: [],
allcol: [],
showcol: this.showCol,
@@ -347,6 +350,16 @@
},
// 鎶ヤ环鍗�
async getQuotationList() {
+ if(!this.editConfig.isRequest){
+ this.tableList.tableInfomation =this.editConfig.tableInfomation.map((item) => {
+ return {
+ ...item,
+ member_name: item.member.username
+ }
+ })
+ this.pagerOptions.totalCount =this.editConfig.count?this.editConfig.count:0
+ return true;
+ }
await getQuotationList({
search_map: this.search_map,
page: this.pagerOptions.currPage,
@@ -552,6 +565,9 @@
<style lang="scss" scoped>
.bg-view {
margin: 10px;
+ .bg-list{
+ min-height:370px;
+ }
.query-bg {
margin-left: -20px;
margin-bottom: 10px;
@@ -563,6 +579,7 @@
width: 100px;
}
}
+
.btn {
float: right;
}
diff --git a/src/views/sales/masterOrder/AddMasterOrderDialog.vue b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
index 0d94b5f..86d34d6 100644
--- a/src/views/sales/masterOrder/AddMasterOrderDialog.vue
+++ b/src/views/sales/masterOrder/AddMasterOrderDialog.vue
@@ -101,7 +101,9 @@
<el-date-picker
v-model="editConfig.infomation.start_time"
value-format="yyyy-MM-dd HH:mm:ss"
+ :picker-options="pickerOptions"
style="width: 100%"
+ @change="checkDate(editConfig.infomation.start_time,editConfig.infomation.end_time)"
type="datetime"
placeholder="閫夋嫨鏃ユ湡"
>
@@ -113,7 +115,9 @@
<el-date-picker
v-model="editConfig.infomation.end_time"
value-format="yyyy-MM-dd HH:mm:ss"
+ :picker-options="pickerOptions"
type="datetime"
+ @change="checkDate(editConfig.infomation.start_time,editConfig.infomation.end_time)"
style="width: 100%"
placeholder="閫夋嫨鏃ユ湡"
>
@@ -188,6 +192,8 @@
import { getAddMasterOrder, getUpdateMasterOrder } from "@/api/sales/masterOrder"
import SelectClientDialog from "@/views/other/commonDialog/SelectClientDialog"
import codeMixin from "@/components/makepager/mixin/codeMixin"
+import NewDate from "@/api/date";
+const { compareTime } = NewDate;
export default {
name: "QuotationDialog",
mixins: [codeMixin],
@@ -228,7 +234,12 @@
infomation: {}
},
clientId: this.editCommonConfig.infomation.client_id,
- objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞�诲崟缂栫爜", codeStandID: "" }
+ objCode: { name: "", page: 0, pageSize: 0, type: "閿�鍞�诲崟缂栫爜", codeStandID: "" },
+ pickerOptions: {
+ disabledDate(time) {
+ return time.getTime() < new Date().getTime() - 86400000;
+ },
+ },
}
},
created() {
@@ -244,6 +255,13 @@
}
},
methods: {
+ checkDate(start,end){
+ if(start&&end){
+ if (compareTime(start, end) > 0) {
+ this.$message.error('鏈嶅姟鎴鏃堕棿瑕佹櫄浜庢湇鍔″紑濮嬫椂闂达紒')
+ }
+ }
+ },
formInfo() {
this.objCode.codeStandID = ""
if (this.editConfig.infomation.codeStandID) {
diff --git a/src/views/sales/quotation/AddQuotationDialog.vue b/src/views/sales/quotation/AddQuotationDialog.vue
index c08cbe4..8684bc1 100644
--- a/src/views/sales/quotation/AddQuotationDialog.vue
+++ b/src/views/sales/quotation/AddQuotationDialog.vue
@@ -527,8 +527,8 @@
this.$message.error("浜у搧鍚嶇О涓嶈兘涓虹┖")
} else {
for (let i = 0; i < this.tableData.length; i++) {
- if (this.tableData[i].cost || Number(this.tableData[i].cost) == 0) {
- let reg = /^\+?[1-9]\d*$/
+ if (this.tableData[i].cost) {
+ let reg =/(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/;
if (!reg.test(this.tableData[i].cost)) {
this.$message.error("鎴愭湰鍗曚环闇�瑕佸~鍐欏ぇ浜�0鐨�2浣嶅皬鏁帮紒")
return true
diff --git a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
index 37d3683..c8fcea5 100644
--- a/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
+++ b/src/views/sales/salesDetails/AddSalesDetailsDialog.vue
@@ -116,7 +116,7 @@
:disabled="isNameChanceEdit || isView"
></el-autocomplete>
<div
- v-if="!isNameChanceEdit && !isView"
+ v-if="!isNameChanceEdit && !isView&&editConfig.infomation.client_name"
class="common-select-btn"
@click="selClientClick('chance')"
>
@@ -196,7 +196,7 @@
:disabled="isAddQuatation || isView"
></el-autocomplete>
<div
- v-if="!isAddQuatation && !isView"
+ v-if="!isAddQuatation && !isView&&editConfig.infomation.sale_chance_name"
class="common-select-btn"
@click="selClientClick('quotation')"
>
@@ -319,7 +319,7 @@
></el-input>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <!-- <el-col :span="12">
<el-form-item label="鐗╂祦鍏徃" prop="logisticCompany">
<el-input v-model="editConfig.infomation.logisticCompany" :disabled="isView"></el-input>
</el-form-item>
@@ -328,7 +328,7 @@
<el-form-item label="鐗╂祦鍗曞彿" prop="logisticNumber">
<el-input v-model="editConfig.infomation.logisticNumber" :disabled="isView"></el-input>
</el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="12">
<el-form-item label="鐗╂祦璐圭敤" prop="logisticCost">
<el-input-number
@@ -809,6 +809,7 @@
if (res.code == 200) {
console.log(res)
this.quotationList = res.data.list
+ this.count=res.data.count;
if (value === "鍏ㄩ儴浜у搧") {
// this.quotationList.map((item) => {
// if (item.id === this.editConfig.infomation.quotationId) {
@@ -834,11 +835,15 @@
restaurants = this.clientList
console.log(restaurants, "瀹㈡埛鍗�")
} else if (value === "chance") {
- restaurants = this.saleChancelist
+ if(this.editConfig.infomation.client_name){
+ restaurants = this.saleChancelist
+ }
} else if (value === "subbill") {
restaurants = this.subOrderList
} else if (value === "quotation") {
- restaurants = this.quotationList
+ if(this.editConfig.infomation.sale_chance_name){
+ restaurants = this.quotationList
+ }
}
var results = queryString ? restaurants.filter(this.createStateFilter(queryString, value)) : restaurants
cb(results)
@@ -916,6 +921,8 @@
this.editSelCommonConfig.title = "鎶ヤ环鍗�"
this.editSelCommonConfig.editVisible = true
this.editSelCommonConfig.clientId = this.clientId
+ this.editSelCommonConfig.isRequest = false
+ this.editSelCommonConfig.count=this.count
this.editSelCommonConfig.tableInfomation = [...this.quotationList]
}
},
diff --git a/src/views/sales/salesDetails/index.vue b/src/views/sales/salesDetails/index.vue
index e88abf1..88a2e02 100644
--- a/src/views/sales/salesDetails/index.vue
+++ b/src/views/sales/salesDetails/index.vue
@@ -195,7 +195,7 @@
{ label: "浜у搧鍚嶇О", prop: "name" },
{ label: "鏁伴噺", prop: "amount" },
{ label: "鍗曚綅", prop: "unit" },
- { label: "閿�鍞崟浠�", prop: "salePrice", price: true },
+ { label: "閿�鍞崟浠�", prop: "price", price: true },
{ label: "鎴愭湰鍗曚环", prop: "cost" },
{ label: "姣涘埄", prop: "profit" },
{ label: "姣涘埄鐜�(%)", prop: "margin" },
@@ -299,7 +299,7 @@
{ label: "閿�鍞礋璐d汉", prop: "member_name" },
{ label: "绛剧害鏃ユ湡", prop: "signTime" },
{ label: "浜や粯鏃ユ湡", prop: "deliveryDate" },
- { label: "璁㈠崟鏉ユ簮", prop: "source" },
+ // { label: "璁㈠崟鏉ユ簮", prop: "source" },
{ label: "鍚堣", prop: "amountTotal", price: true },
{ label: "鐘舵��", prop: "status", isCallMethod: true, getCallMethod: this.getStatus }
],
--
Gitblit v1.8.0