|
@@ -78,13 +78,21 @@
|
|
|
</el-table>
|
|
|
|
|
|
<!-- 计划实时进度表 -->
|
|
|
- <el-table v-if="ins == 1" key="19" border :data="fTEDataList" highlight-current-row v-loading="listLoading" :height="+tableHeight - 1" style="width: 100%;">
|
|
|
- <el-table-column align="center" prop="projectCode" label="排除计划" min-width="150"></el-table-column>
|
|
|
- <el-table-column align="center" prop="projectName" label="工序" min-width="250"></el-table-column>
|
|
|
- <el-table-column align="center" prop="workTime" label="人员" min-width="150"></el-table-column>
|
|
|
- <el-table-column align="center" prop="FTE" label="计划工时" min-width="250"></el-table-column>
|
|
|
- <el-table-column align="center" prop="FTE" label="当前工时" min-width="250"></el-table-column>
|
|
|
- <el-table-column align="center" prop="FTE" label="进度" min-width="250"></el-table-column>
|
|
|
+ <el-table v-if="ins == 1" key="19" border :data="planRealTimeProgressList" highlight-current-row v-loading="listLoading" :height="+tableHeight - 1" style="width: 100%;">
|
|
|
+ <el-table-column align="center" prop="taskName" label="排产计划" min-width="150">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span @click="showPlanDetail(scope.row)" class="colorText">{{scope.row.taskName}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column align="center" prop="procedureName" label="工序" min-width="250"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="userName" label="人员" min-width="150"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="planWorkTime" label="计划工时" min-width="250"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="nowWorkTime" label="当前工时" min-width="250"></el-table-column>
|
|
|
+ <el-table-column align="center" prop="progress" label="进度" min-width="250">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.progress}}%
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</el-table>
|
|
|
|
|
|
<!--工具条-->
|
|
@@ -161,6 +169,132 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
+
|
|
|
+ <!-- 查看今日/明日计划 -->
|
|
|
+ <el-dialog :title="this.taskName" :visible.sync="planDetailDiaLog" width="800px" top="190px" :before-close="handleClose">
|
|
|
+ <div class="planDialog">
|
|
|
+ <el-form ref="planForm" :model="planForm" label-width="120px" disabled>
|
|
|
+ <el-form-item label="排产工单号" style="width: 100%" prop="productSchedulingNum">
|
|
|
+ <el-input v-model="planForm.productSchedulingNum" maxlength="50"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品名称" style="width: 100%" prop="productId">
|
|
|
+ <el-select v-model="planForm.productId" placeholder="请选择" class="w100" @change="setProductCode">
|
|
|
+ <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="项目代码" style="width: 100%" prop="projectCode">
|
|
|
+ <el-input v-model="planForm.projectCode" maxlength="50" readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="钢印号" style="width: 100%" prop="steelStampNumberStart">
|
|
|
+ <el-input class="w45" v-model="planForm.steelStampNumberStart" maxlength="20"></el-input>
|
|
|
+ {{ "-" }}
|
|
|
+ <el-input class="w45" v-model="planForm.steelStampNumberEnd" maxlength="20"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="计划总工价" v-if="this.titleName==='编辑今日计划'" prop="planTotalWages">
|
|
|
+ <el-input v-model="planForm.planTotalWages" type="number"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="进度" :style="this.titleName==='编辑今日计划'?'':'width: 100%'" prop="progress">
|
|
|
+ <el-input v-model="planForm.progress" maxlength="20"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="数量" prop="num">
|
|
|
+ <el-input v-model="planForm.num" maxlength="10" type="number"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="主工序" prop="mainProcess">
|
|
|
+ <el-input v-model="planForm.mainProcess" maxlength="20"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工位" prop="stationId">
|
|
|
+ <el-cascader v-model="planForm.stationId" :options="departmentList" :props="{ checkStrictly: true }"
|
|
|
+ collapse-tags class="w100" clearable @change="getIncharger()">
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工长" prop="foremanName">
|
|
|
+ <el-input v-model="planForm.foremanName" readonly></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="开工时间" prop="startDate">
|
|
|
+ <el-date-picker class="w100" v-model="planForm.startDate" type="date" placeholder="选择日期"
|
|
|
+ value-format="yyyy-MM-dd" readonly>
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="完工时间" prop="endDate">
|
|
|
+ <el-date-picker class="w100" v-model="planForm.endDate" type="date" placeholder="选择日期"
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="描述" style="width: 100%">
|
|
|
+ <el-input type="textarea" :rows="6" placeholder="请输入描述" v-model="planForm.describtion" maxlength="200">
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 插单计划 -->
|
|
|
+ <el-dialog :title="taskName" :visible.sync="orderInsertPlanDetailDiaLog" width="800px" top="18.5vh" :before-close="handleClose">
|
|
|
+ <div class="planDialog">
|
|
|
+ <el-form ref="orderInsertPlanForm" :model="orderInsertPlanForm" label-width="120px" disabled>
|
|
|
+ <el-form-item label="任务变更通知号" style="width: 100%" prop="taskChangeNoticeNum">
|
|
|
+ <el-input v-model="orderInsertPlanForm.taskChangeNoticeNum" placeholder="请输入" maxlength="50"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="任务名称" style="width: 100%" prop="taskName">
|
|
|
+ <el-input v-model="orderInsertPlanForm.taskName" placeholder="请输入" maxlength="50"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="任务类型" prop="taskTypeId">
|
|
|
+ <el-select v-model="orderInsertPlanForm.taskTypeId" placeholder="请选择" class="w100">
|
|
|
+ <el-option v-for="item in taskTypeList" :key="item.id" :label="item.taskTypeName" :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="计划人数" prop="planManNum">
|
|
|
+ <el-input v-model="orderInsertPlanForm.planManNum" type="number" placeholder="请输入" maxlength="5"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="数量" prop="num">
|
|
|
+ <el-input v-model="orderInsertPlanForm.num" type="number" placeholder="请输入" maxlength="5"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="计划工时" prop="planWorkHour">
|
|
|
+ <div style="display: flex;">
|
|
|
+ <el-input v-model="orderInsertPlanForm.planWorkHour" type="number" placeholder="请输入" style="flex: 1;" maxlength="5"></el-input>
|
|
|
+ <div style="margin-left: 10px;">小时</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="单价" prop="moneyOfJob">
|
|
|
+ <div style="display: flex;">
|
|
|
+ <el-input v-model="orderInsertPlanForm.moneyOfJob" type="number" placeholder="请输入" style="flex: 1;" maxlength="5"></el-input>
|
|
|
+ <div style="margin-left: 10px;">元/小时</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="质检类型" prop="productId">
|
|
|
+ <el-select v-model="orderInsertPlanForm.checkType" placeholder="请选择" class="w100">
|
|
|
+ <el-option v-for="item in checkTypeList" :key="item.id" :label="item.name" :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工位" prop="stationId">
|
|
|
+ <el-cascader v-model="orderInsertPlanForm.stationId" :options="departmentList" :props="{ checkStrictly: true }"
|
|
|
+ collapse-tags class="w100" clearable @change="getIncharger()">
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="工长" prop="foremanName">
|
|
|
+ <el-input v-model="orderInsertPlanForm.foremanName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="开工时间" prop="startDate">
|
|
|
+ <el-date-picker class="w100" v-model="orderInsertPlanForm.startDate" type="date" placeholder="选择日期"
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="完工时间" prop="endDate">
|
|
|
+ <el-date-picker class="w100" v-model="orderInsertPlanForm.endDate" type="date" placeholder="选择日期"
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="描述" style="width: 100%">
|
|
|
+ <el-input type="textarea" :rows="6" placeholder="请输入描述" v-model="orderInsertPlanForm.describtion" maxlength="200">
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
</section>
|
|
|
</template>
|
|
|
|
|
@@ -225,6 +359,45 @@ export default {
|
|
|
totalCost:0,
|
|
|
totalWorkingTime:0,
|
|
|
|
|
|
+ planForm: {
|
|
|
+ id: null,
|
|
|
+ productSchedulingNum: "",
|
|
|
+ productId: "",
|
|
|
+ projectCode: "",
|
|
|
+ steelStampNumberStart: "",
|
|
|
+ steelStampNumberEnd: "",
|
|
|
+ num: "",
|
|
|
+ mainProcess: "",
|
|
|
+ progress: "",
|
|
|
+ stationId: "",
|
|
|
+ foremanId: "",
|
|
|
+ foremanName: "",
|
|
|
+ startDate: this.todayDate,
|
|
|
+ endDate: "",
|
|
|
+ describtion: "",
|
|
|
+ versionNumber: "",
|
|
|
+ planTotalWages:0
|
|
|
+ },
|
|
|
+
|
|
|
+ orderInsertPlanForm : {
|
|
|
+ id: null,
|
|
|
+ taskChangeNoticeNum: "",
|
|
|
+ taskName: "",
|
|
|
+ taskTypeId: "",
|
|
|
+ taskTypeName: "",
|
|
|
+ planManNum: "",
|
|
|
+ num: "",
|
|
|
+ planWorkHour: "",
|
|
|
+ moneyOfJob: "",
|
|
|
+ foremanId: "",
|
|
|
+ foremanName: "",
|
|
|
+ startDate: "",
|
|
|
+ endDate: "",
|
|
|
+ describtion: "",
|
|
|
+ versionNumber: "",
|
|
|
+ checkType:0,
|
|
|
+ },
|
|
|
+
|
|
|
|
|
|
personWorkHoursWagesList:[],
|
|
|
planRealTimeProgressList:[],
|
|
@@ -248,6 +421,10 @@ export default {
|
|
|
|
|
|
monthPersonnel: '',
|
|
|
exportLoading: false,
|
|
|
+
|
|
|
+ taskName:'',//计划名称
|
|
|
+ planDetailDiaLog:false,
|
|
|
+ orderInsertPlanDetailDiaLog:false
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
@@ -310,6 +487,16 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ showPlanDetail(item){
|
|
|
+ console.log(item)
|
|
|
+ if(item.planType==0){
|
|
|
+ this.planDetailDiaLog=true
|
|
|
+ }else{
|
|
|
+ this.orderInsertPlanDetailDiaLog=true
|
|
|
+ }
|
|
|
+ this.taskName=item.taskName
|
|
|
+ this.getPlanDetail(item);
|
|
|
+ },
|
|
|
showReportDetail(item){
|
|
|
console.log(item)
|
|
|
this.reportDetailDialog=true
|
|
@@ -395,6 +582,31 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
+ //获取计划数据
|
|
|
+ getPlanDetail(item){
|
|
|
+ this.http.post( "/plan/getById", {
|
|
|
+ id:item.planId
|
|
|
+ },
|
|
|
+ res => {
|
|
|
+ if (res.code == "ok") {
|
|
|
+ if(item.planType==0){
|
|
|
+ this.planForm=res.data
|
|
|
+ }else{
|
|
|
+ this.orderInsertPlanForm=res.data
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ message: res.msg,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },error => {
|
|
|
+ this.$message({
|
|
|
+ message: error,
|
|
|
+ type: "error"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
//人员工时工价表数据
|
|
|
getPersonWorkHoursWagesList(){
|
|
|
this.http.post( "/report/getPersonWorkHoursWagesList", {
|
|
@@ -575,11 +787,12 @@ export default {
|
|
|
sl.deptId=this.departmentIdArray[0];
|
|
|
sl.userId=this.userId;
|
|
|
} else if (this.ins == 1) {
|
|
|
- fName = this.$t('projectTaskReport') + '.xlsx';
|
|
|
- url += "/exportProjectTask";
|
|
|
- if(this.taskTypeId != 'null' && this.taskTypeId != null && this.taskTypeId != '') {
|
|
|
- sl.taskType = this.taskTypeId
|
|
|
- }
|
|
|
+ fName = '计划实际工时表_' + '.xlsx';
|
|
|
+ url += "/exportPlanRealTimeProgressList";
|
|
|
+ sl.startDate=this.rangeDatas[0];
|
|
|
+ sl.endDate=this.rangeDatas[1];
|
|
|
+ sl.deptId=this.departmentIdArray[0];
|
|
|
+ sl.userId=this.userId;
|
|
|
}
|
|
|
this.http.post(url, sl,
|
|
|
res => {
|
|
@@ -647,6 +860,7 @@ export default {
|
|
|
}
|
|
|
if(this.ins == 1){
|
|
|
//TODO: 获取数据
|
|
|
+ this.getPlanRealTimeProgressList()
|
|
|
}
|
|
|
},
|
|
|
// 日期
|
|
@@ -719,7 +933,7 @@ export default {
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
-<style scoped>
|
|
|
+<style scoped lang='scss'>
|
|
|
.tableRightBtn {
|
|
|
float: right;
|
|
|
margin-left: 15px !important;
|
|
@@ -927,4 +1141,32 @@ export default {
|
|
|
color:red;
|
|
|
}
|
|
|
|
|
|
+.planDialog::-webkit-scrollbar {
|
|
|
+ display: none;
|
|
|
+ /* Chrome Safari */
|
|
|
+}
|
|
|
+// 新增样式
|
|
|
+.planDialog {
|
|
|
+ max-height: 42vh;
|
|
|
+ overflow-y: auto;
|
|
|
+ scrollbar-width: none;
|
|
|
+ /* Firefox */
|
|
|
+ -ms-overflow-style: none;
|
|
|
+}
|
|
|
+.el-form {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ justify-content: space-between;
|
|
|
+}
|
|
|
+.w100 {
|
|
|
+ width: 100%;
|
|
|
+}
|
|
|
+.el-form-item {
|
|
|
+ width: 50%;
|
|
|
+
|
|
|
+ .w45 {
|
|
|
+ width: 49%;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
</style>
|