Merge branch 'develop' of https://e.coding.net/ctcdevteam/hberp/hberp into develop

This commit is contained in:
shilixia 2021-12-20 16:26:12 +08:00
commit be1169e158
6 changed files with 49 additions and 43 deletions

View File

@ -1,5 +1,19 @@
<template> <template>
<div> <div>
<el-row style="position: fixed;z-index: 2000;top: 465px;right: 10px;">
<el-date-picker
v-model="timeRange"
type="monthrange"
start-placeholder="开始日期"
end-placeholder="结束日期"
range-separator=""
format="yyyy 年 MM 月"
value-format="yyyy-MM"
@change="timeRangeChange"
>
<!--test-->
</el-date-picker>
</el-row>
<div class="left" style=" width: 400px ;float: left;border-right: 1px solid #f7f7f7"> <div class="left" style=" width: 400px ;float: left;border-right: 1px solid #f7f7f7">
<leftMenu <leftMenu
:list="list" :list="list"
@ -131,7 +145,7 @@
}" }"
></span> ></span>
</template> </template>
<template v-if="currentDaySize.value === 2"> <template v-if="currentDaySize.value === 5">
<span <span
class="dateNum" class="dateNum"
:class="{ :class="{
@ -264,11 +278,11 @@
<span class="title">工作周期</span> <span class="title">工作周期</span>
<span>{{ currentProjectMsg.allTime }}</span> <span>{{ currentProjectMsg.allTime }}</span>
</div> </div>
<div class="lineMsg"> <div class="lineMsg" v-if="currentProjectMsg.per1">
<span class="title">当前进度</span> <span class="title">当前进度</span>
<span>{{ currentProjectMsg.per }}</span> <span>{{ currentProjectMsg.per }}</span>
</div> </div>
<div class="lineMsg"> <div class="lineMsg" v-if="currentProjectMsg.per1">
<span class="title">合格数量</span> <span class="title">合格数量</span>
<span>{{ currentProjectMsg.per1 }}</span> <span>{{ currentProjectMsg.per1 }}</span>
</div> </div>
@ -300,10 +314,12 @@
type:Array, type:Array,
default: () => { default: () => {
return [] return []
}} , }
} ,
}, },
data() { data() {
return { return {
leftYear:2021,
timeRange: [], timeRange: [],
disable: true, disable: true,
//当前项是否是子集 //当前项是否是子集
@ -343,7 +359,7 @@
}, },
{ {
label: "", label: "",
value: 2 value: 5
} }
], ],
//是否显示信息 //是否显示信息
@ -374,7 +390,8 @@
}; };
}, },
mounted(){ mounted(){
debugger; let currentYear = new Date().getFullYear();
this.timeRange = [currentYear+'-01',currentYear+'-12'];
this.list = [...this.proList]; this.list = [...this.proList];
document.addEventListener("scroll", this.handleScroll); document.addEventListener("scroll", this.handleScroll);
this.list=[...this.list]; this.list=[...this.list];
@ -383,6 +400,7 @@
this.setStoneLine(); this.setStoneLine();
}, },
computed: { computed: {
computedList() { computedList() {
let arr = []; let arr = [];
this.list.forEach(item => { this.list.forEach(item => {
@ -412,14 +430,15 @@
} }
}, },
methods: { methods: {
timeRangeChange(){
this.getAllDate();
this.handlerCheckList(this.list);
this.getDay();
this.setStoneLine();
},
TableScrollTop(val) { TableScrollTop(val) {
let lineBG = this.$refs.lineBG; let lineBG = this.$refs.lineBG;
lineBG.scrollTo(0, val); lineBG.scrollTo(0, val);
// lineBG.scrollTo({
// top: val,
// left: 0,
// behavior: "smooth"
// });
}, },
handlerBGScroll(e) { handlerBGScroll(e) {
this.BGScrollTop = this.$refs.chart.scrollTop; this.BGScrollTop = this.$refs.chart.scrollTop;
@ -502,15 +521,14 @@
}, },
// 根据时间计算距离 // 根据时间计算距离
computedTimeWidth(startTime, endTime) { computedTimeWidth(startTime, endTime) {
debugger;
if (!endTime) { if (!endTime) {
let left = let leftY = this.leftYear+'-01-01';
(Math.floor(startTime - new Date(`${this.currentYear - 1}/01/01`).getTime()) / let leftTime = new Date(leftY).getTime();
let left = (Math.floor(startTime - leftTime) /
(1000 * 60 * 60 * 24)) * this.currentDaySize.value; (1000 * 60 * 60 * 24)) * this.currentDaySize.value;
return left; return left;
} else { } else {
let width = (Math.floor(endTime - startTime) / (1000 * 60 * 60 * 24)) * this.currentDaySize.value + this.currentDaySize.value; let width = (Math.floor(endTime - startTime) / (1000 * 60 * 60 * 24)) * this.currentDaySize.value + this.currentDaySize.value;
console.log(width);
return width; return width;
} }
}, },
@ -706,7 +724,7 @@
(Math.floor( (Math.floor(
new Date( new Date(
`${this.currentYear}/${this.currentMonth}/${this.currentDay}` `${this.currentYear}/${this.currentMonth}/${this.currentDay}`
).getTime() - new Date(`${this.currentYear - 1}/01/01`).getTime() ).getTime() - new Date(`${this.leftYear}/01/01`).getTime()
) / ) /
(1000 * 60 * 60 * 24)) * (1000 * 60 * 60 * 24)) *
this.currentDaySize.value - s; this.currentDaySize.value - s;
@ -723,7 +741,7 @@
*/ */
computedWithTime(width, time) { computedWithTime(width, time) {
let startTime = (width / this.currentDaySize.value) * (1000 * 60 * 60 * 24) + let startTime = (width / this.currentDaySize.value) * (1000 * 60 * 60 * 24) +
new Date(`${this.currentYear - 1}/01/01`).getTime(); new Date(`${this.leftYear}/01/01`).getTime();
let s = new Date(startTime); let s = new Date(startTime);
if (time && time == true) { if (time && time == true) {
return s.getTime(); return s.getTime();
@ -882,12 +900,15 @@
}, },
getAllDate() { getAllDate() {
let obj = {}, arr = []; let obj = {}, arr = [];
/* let start = new Date(this.timeRange[0]).getFullYear(); let start = parseInt(this.timeRange[0].split('-')[0]);
let end = new Date(this.timeRange[1]).getFullYear();*/ let end = parseInt(this.timeRange[1].split('-')[0]);
/*for (let i = start; i < end + 1; i++) { // let end = new Date(this.timeRange[1]).getFullYear();
for (let i = start; i < end + 1; i++) {
arr.push(i) arr.push(i)
}*/ }
arr = [this.currentYear - 1, this.currentYear, this.currentYear + 1]; this.leftYear = arr[0];
// arr = [this.currentYear - 1, this.currentYear, this.currentYear + 1];
this.allDays = [];
arr.forEach(item => { arr.forEach(item => {
obj.year = item; obj.year = item;
obj.days = this.isLeapYear(item) ? 365 : 366; obj.days = this.isLeapYear(item) ? 365 : 366;
@ -914,6 +935,7 @@
this.allDays.forEach(item => { this.allDays.forEach(item => {
arr = arr.concat(item.month); arr = arr.concat(item.month);
}); });
this.days = [];
arr.forEach(item => { arr.forEach(item => {
for (var j in item) { for (var j in item) {
this.days = this.days.concat(item[j]); this.days = this.days.concat(item[j]);
@ -973,19 +995,16 @@
case 10: case 10:
case 12: case 12:
return 31; return 31;
// eslint-disable-next-line no-unreachable
break; break;
case 4: case 4:
case 6: case 6:
case 9: case 9:
case 11: case 11:
return 30; return 30;
// eslint-disable-next-line no-unreachable
break; break;
case 2: case 2:
day = days == 365 ? 28 : 29; day = days == 365 ? 28 : 29;
return day; return day;
// eslint-disable-next-line no-unreachable
break; break;
} }
}, },
@ -1148,7 +1167,7 @@
.toolTip { .toolTip {
position: fixed; position: fixed;
right: 0; right: 0;
top: 90px; top: 550px;
z-index: 999; z-index: 999;
.base { .base {

View File

@ -203,18 +203,6 @@
:proList="proList" :proList="proList"
></gantt> ></gantt>
</el-tab-pane> </el-tab-pane>
<!--<el-row style="position: absolute;z-index: 20000;top: 0;right: 0;">
<el-date-picker
v-model="timeRange"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
>
&lt;!&ndash; @change="timeRangeChange"&ndash;&gt;
</el-date-picker>
</el-row>-->
</el-tabs> </el-tabs>
</div> </div>
</template> </template>
@ -233,7 +221,6 @@
components: {Pagination,gantt}, components: {Pagination,gantt},
data() { data() {
return { return {
orderplan: defaulteorderplan, orderplan: defaulteorderplan,
orderList: { orderList: {
count: 0, count: 0,
@ -259,7 +246,6 @@
number: [{required: true, message: "请输入", trigger: "blur"}], number: [{required: true, message: "请输入", trigger: "blur"}],
}, },
timeRange:[],
proList:[], proList:[],
}; };
}, },

View File

@ -41,7 +41,7 @@ class ProductionPlanViewSet(CreateUpdateModelAMixin, ListModelMixin, CreateModel
perms_map = {'*': '*'} perms_map = {'*': '*'}
queryset = ProductionPlan.objects.select_related('order', 'order__contract', 'product') queryset = ProductionPlan.objects.select_related('order', 'order__contract', 'product')
serializer_class = ProductionPlanSerializer serializer_class = ProductionPlanSerializer
search_fields = ['number'] search_fields = ['number', 'order__number', 'order__contract__number', 'product__number']
filterset_fields = ['product', 'order'] filterset_fields = ['product', 'order']
ordering_fields = ['id'] ordering_fields = ['id']
ordering = ['-id'] ordering = ['-id']

View File

@ -137,6 +137,7 @@ class WProductListSerializer(serializers.ModelSerializer):
""" """
material_ = MaterialSimpleSerializer(source='material', read_only=True) material_ = MaterialSimpleSerializer(source='material', read_only=True)
step_ = StepSimpleSerializer(source='step', read_only=True) step_ = StepSimpleSerializer(source='step', read_only=True)
subproduction_plan_ = SubproductionPlanSimpleSerializer(source='subproduction_plan', read_only=True)
class Meta: class Meta:
model = WProduct model = WProduct
fields = '__all__' fields = '__all__'

View File

@ -179,7 +179,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
半成品 半成品
""" """
perms_map={'*':'*'} perms_map={'*':'*'}
queryset = WProduct.objects.select_related('step', 'material').filter(is_hidden=False) queryset = WProduct.objects.select_related('step', 'material', 'subproduction_plan').filter(is_hidden=False)
serializer_class = WProductListSerializer serializer_class = WProductListSerializer
filterset_fields = ['step', 'subproduction_plan', 'material', 'step__process', 'act_state', 'material__type'] filterset_fields = ['step', 'subproduction_plan', 'material', 'step__process', 'act_state', 'material__type']
search_fields = ['number'] search_fields = ['number']

View File

@ -65,7 +65,7 @@ class UpdateDevelop(APIView):
ret = os.popen('git pull https://caoqianming%40foxmail.com:9093qqww@e.coding.net/ctcdevteam/hberp/hberp.git develop') ret = os.popen('git pull https://caoqianming%40foxmail.com:9093qqww@e.coding.net/ctcdevteam/hberp/hberp.git develop')
# 奇怪的处理 # 奇怪的处理
os.chdir('/home/hberp/hb_server/vuedist') os.chdir('/home/hberp/hb_server/vuedist')
os.popen('cp index.html indexbak & rm -rf index.html & mv indexbak index.html') os.popen('cp index.html indexbak && rm -rf index.html && mv -f indexbak index.html')
# 打包前端 # 打包前端
# os.chdir('/home/hberp/hb_client') # os.chdir('/home/hberp/hb_client')
# os.system('npm run build:prod') # os.system('npm run build:prod')