xwt
4 天以前 c47ec7b37e7f68c49b40fc4b59098e79626e66de
pages/QC/XJ/Add.vue
@@ -24,10 +24,18 @@
              <view class="info-value">{{ formData.createDate }}</view>
            </view>
            <view class="info-item">
              <view class="info-label">生产车间</view>
              <picker v-if="isUpdate" class="picker-input" name="selector" :range="departmentList" range-key="departmentname"
                      @change="onDepartmentChange">
                <view class="picker-value">{{ getSelectedDepartmentName() || '请选择车间' }}</view>
              </picker>
              <view v-else class="info-value">{{ WORKSHOP }}</view>
            </view>
            <view class="info-item">
              <view class="info-label">线体编号</view>
              <picker v-if="isUpdate" class="picker-input" name="selector" :range="DAA020List"
              <picker v-if="isUpdate" class="picker-input" name="selector" :range="filteredDAA020List"
                      @change="onDaa020Change">
                <view class="picker-value">{{ DAA020List[DAA020Index] || '请选择' }}</view>
                <view class="picker-value">{{ filteredDAA020List[DAA020Index] || '请选择' }}</view>
              </picker>
              <view v-else class="info-value">{{ formData.daa020 }}</view>
            </view>
@@ -163,6 +171,7 @@
  
        DAA020List: [],
        DAA020Index: -1,
        filteredDAA020List: [],
  
        DAA001List: [],
        DAA001Index: -1,
@@ -186,6 +195,11 @@
  
        remarks: "",
        remarksPopup: false,
        // 部门选择相关
        departmentList: [],
        selectedDepartment: '',
        WORKSHOP: '',
      };
    },
    onLoad(options) {
@@ -215,7 +229,11 @@
        }).then(res => {
          this.lineList = res.data.tbBillList;
          this.DAA020List = res.data.tbBillList.map(item => item.lineName);
          this.filteredDAA020List = this.DAA020List; // 初始时显示所有线体
        })
        // 获取部门列表
        this.loadDepartments();
      }
    },
    methods: {
@@ -283,6 +301,81 @@
          this.isUpdate = false;
        });
      },
      // 加载部门列表
      loadDepartments() {
        this.$post({
          url: "/XJ/getDepartmentsWithLines"
        }).then(res => {
          if (res.status === 0) {
            this.departmentList = res.data.tbBillList;
          } else {
            this.$showMessage("获取部门列表失败");
          }
        });
      },
      // 部门选择变化处理
      onDepartmentChange(e) {
        const index = e.detail.value;
        if (index >= 0 && index < this.departmentList.length) {
          const selectedDept = this.departmentList[index];
          this.selectedDepartment = selectedDept.departmentid;
          this.WORKSHOP = selectedDept.departmentname;
          // 根据选中的部门过滤线体列表
          this.filterLinesByDepartment(selectedDept.departmentid);
          // 保存部门选择
          this.saveDepartmentSelection();
        }
      },
      // 获取选中的部门名称
      getSelectedDepartmentName() {
        if (!this.selectedDepartment) return '';
        const dept = this.departmentList.find(item => item.departmentid === this.selectedDepartment);
        return dept ? dept.departmentname : '';
      },
      // 保存部门选择
      saveDepartmentSelection() {
        if (this.formData.id && this.selectedDepartment) {
          this.$post({
            url: "/XJ/saveDepartmentSelection",
            data: {
              id: this.formData.id,
              departmentId: this.selectedDepartment,
              departmentName: this.WORKSHOP
            }
          }).then(res => {
            if (res.status === 0) {
              this.$showMessage("部门选择已保存");
            }
          });
        }
      },
      // 根据部门过滤线体列表
      filterLinesByDepartment(departmentId) {
        this.$post({
          url: "/XJ/getLinesByDepartment",
          data: {
            departmentId: departmentId
          }
        }).then(res => {
          if (res.status === 0) {
            this.filteredDAA020List = res.data.tbBillList.map(item => item.lineName);
            this.lineList = res.data.tbBillList;
            // 重置线体选择索引
            this.DAA020Index = -1;
            this.formData.daa020 = '';
          } else {
            this.$showMessage("获取线体列表失败");
          }
        });
      },
      //生产线别选择并初始话工单号
      onDaa020Change(event) {
        //获取生产线别的下标地址