haoxuan
2023-09-21 c87a6f7310ca992d7f058a8f286b095c9a632c90
src/views/warehouseManage/position/AddDialog.vue
@@ -15,8 +15,7 @@
            <span>打印</span>
          </span>
          <span class="btn" style="margin-left: 15px">
            <i class="el-icon-s-tools"></i>
            <span>动作</span>
            <el-button plain size="mini" style="margin-left: 15px" @click="deleteClick">删除</el-button>
          </span>
          <el-button v-if="showEdit" plain size="mini" style="margin-left: 15px" @click="editClick">编辑</el-button>
        </div>
@@ -40,21 +39,31 @@
            <el-row>
              <el-col :span="24" class="line_height_30px">
                <el-form-item label="位置名称" prop="client_name">
                <el-form-item label="位置名称" prop="name">
                  <el-input
                  :disabled="showEdit"
                    v-model="editConfig.infomation.inspectionScale"
                  :disabled="!showFooter"
                    v-model="editConfig.infomation.name"
                    placeholder="请输入"
                  ></el-input>
                </el-form-item>
              </el-col>
              <el-col :span="24">
                <el-form-item label="上级位置" prop="client_name">
                  <el-input
                  :disabled="showEdit"
                    v-model="editConfig.infomation.inspectionScale"
                    placeholder="请输入"
                  ></el-input>
                <el-form-item label="上级位置" prop="parentId">
                  <el-select
                    v-model="editConfig.infomation.parentId"
                    placeholder="请选择"
                    size="mini"
                    style="width: 45%"
                    :disabled="!showFooter"
                  >
                    <el-option
                      v-for="item in positionList"
                      :key="item.id"
                      :label="item.name"
                      :value="item.id"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
@@ -62,80 +71,96 @@
          <div class="bottom">
              <div class="left">
                <div class="second-label">其他信息</div>
                <el-form-item label="位置类型" prop="desc">
                <el-form-item label="位置类型" prop="type">
                  <el-select
                   v-model="editConfig.value1"
                   v-model="editConfig.infomation.type"
                    filterable
                    :disabled="showEdit"
                    clearable
                    :disabled="!showFooter"
                    placeholder="请选择"
                    style="width: 100%"
                    no-data-text="暂无数据"
                  >
                    <el-option
                      v-for="item in wareList"
                      v-for="item in positionTypeList"
                      :key="item.id"
                      :label="item.name"
                      :value="item.id"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="是一个报废位置" prop="desc">
                </el-form-item>
                <el-form-item label="是一个报废位置" v-if="editConfig.infomation.type==3||editConfig.infomation.type==5" prop="isScrapLocation">
                  <el-checkbox
                  :disabled="showEdit"
                  v-model="editConfig.value2"
                  :disabled="!showFooter"
                  v-model="editConfig.infomation.isScrapLocation"
                  >
                  </el-checkbox>
                </el-form-item>
                <el-form-item label="是一个退回位置" prop="desc">
                <el-form-item label="是一个退回位置" prop="isReturnLocation">
                  <el-checkbox
                  :disabled="showEdit"
                  v-model="editConfig.value2"
                  :disabled="!showFooter"
                  v-model="editConfig.infomation.isReturnLocation"
                  >
                  </el-checkbox>
                </el-form-item>
                <el-form-item label="补充位置" prop="desc">
                <el-form-item label="补充位置" v-if="editConfig.infomation.type==3" prop="replenishLocation">
                  <el-checkbox
                  :disabled="showEdit"
                  v-model="editConfig.value2"
                  :disabled="!showFooter"
                  v-model="editConfig.infomation.replenishLocation"
                  >
                  </el-checkbox>
                </el-form-item>
              </div>
              <div class="left">
              <div class="left" v-if="editConfig.infomation.type==3||editConfig.infomation.type==7">
                <div class="second-label">循环计数</div>
                <el-form-item label="盘点频率(天)" prop="desc">
                <el-form-item label="盘点频率(天)" prop="countFrequency">
                  <el-input
                    :disabled="showEdit"
                    v-model="editConfig.infomation.inspectionScale"
                   :disabled="!showFooter"
                    v-model="editConfig.infomation.countFrequency"
                    placeholder="请输入"
                  ></el-input>
                </el-form-item>
                <el-form-item label="最近有效盘点" prop="desc">
                  <el-input
                    :disabled="showEdit"
                    v-model="editConfig.infomation.inspectionScale"
                    placeholder="请输入"
                  ></el-input>
                <el-form-item label="最近有效盘点" prop="recentlyCount">
                  <el-date-picker
                   :disabled="!showFooter"
                    v-model="editConfig.infomation.recentlyCount"
                    type="date"
                    placeholder="选择日期"
                    value-format="yyyy-MM-dd"
                  >
                  </el-date-picker>
                </el-form-item>
                <el-form-item label="预计下一次盘点" prop="desc">
                  <el-input
                    :disabled="showEdit"
                    v-model="editConfig.infomation.inspectionScale"
                    placeholder="请输入"
                  ></el-input>
                <el-form-item label="预计下一次盘点" prop="nextCount">
                  <el-date-picker
                   :disabled="!showFooter"
                    v-model="editConfig.infomation.nextCount"
                    type="date"
                    placeholder="选择日期"
                    value-format="yyyy-MM-dd"
                  >
                  </el-date-picker>
                </el-form-item>
              </div>
          </div>
          <el-form-item label="" prop="notes" label-width="20px">
                  <el-input
                    :disabled="!showFooter"
                      type="textarea"
                      placeholder="外部备注"
                      :autosize="{ minRows: 3, maxRows: 4 }"
                      maxlength="500"
                      clearable
                      v-model="editConfig.infomation.notes"
                  ></el-input>
          </el-form-item>
          <div class="bottom">
            <div class="left">
                <div class="second-label">物流</div>
                <el-form-item label="下载策略" prop="desc">
            <!-- <div class="left"> -->
                <!-- <div class="second-label">物流</div> -->
                <!-- <el-form-item label="下载策略" prop="desc">
                  <el-select
                   v-model="editConfig.value1"
                    filterable
                    :disabled="showEdit"
                    :disabled="!showFooter"
                    clearable
                    placeholder="请选择"
                    style="width: 100%"
@@ -149,18 +174,8 @@
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
                <el-form-item label="外部备注" prop="desc">
                  <el-input
                     :disabled="showEdit"
                      type="textarea"
                      :autosize="{ minRows: 3, maxRows: 4 }"
                      maxlength="500"
                      clearable
                      v-model="editConfig.value1"
                  ></el-input>
                </el-form-item>
              </div>
                </el-form-item> -->
              <!-- </div> -->
          </div>
        </div>
      </el-form>
@@ -174,6 +189,8 @@
</template>
<script>
import { addLocation,updateLocation,deleteLocation } from "@/api/warehouseManage/warehouse"
import { getDataByType } from "@/api/data";
export default {
  name: "AddScrapDialog",
  props: {
@@ -186,6 +203,9 @@
          infomation: {}
        }
      }
    },
    positionList:{
      type:[Array]
    }
  },
  components: {},
@@ -195,57 +215,42 @@
      dialogWidth: "50%",
      editConfig: this.editCommonConfig,
      rules: {
        number: [{ required: true, message: "请输入退款单编号", trigger: "blur" }],
        refundDate: [{ required: true, message: "请选择退款日期", trigger: "change" }],
        memberId: [{ required: true, message: "请选择销售负责人", trigger: "change" }],
        sale_return_nunber: [{ required: true, message: "请选择销售退货单", trigger: "change" }]
        name: [{ required: true, message: "请输入", trigger: "change" }],
        countFrequency: [{
            required: false,
            message: "请填写不小于0的数字",
            trigger: "change",
          },
          {
            validator: this.validatorNum,
            trigger: "blur",
          },],
      },
      memberOptions: [],
      paymentTypeListOptions: [],
      showEdit: false, // 是否显示编辑按钮
      showFooter: false, // 是否显示取消保存
      currentState: "todo", // 当前状态
      wareList:[
        {
          name:'直接接收产品(1步收货)',
          id:1,
          disabled:false,
        },
        {
          name:'接到产品到收料区,再入库(2步收货)',
          id:2,
          disabled:true,
        },
        {
          name:'接收产品到收料区,检验,然后入库(3步收货)',
          id:3,
          disabled:true,
        }
      ],
      wareoutList:[
        {
          name:'直接出库(1步)',
          id:1,
          disabled:false,
        },
        {
          name:'送到待出库区,再送货(2步发货)',
          id:2,
          disabled:true,
        },
        {
          name:'包装产品,发送到待出库区,再送货(3步发货)',
          id:3,
          disabled:true,
        }
      ],
      positionTypeList: getDataByType("positionType"),
    }
  },
  created() {
    this.setBottonView()
  },
  methods: {
    validatorNum(rule, value, callback) {
      if (value) {
        if (value == undefined || value == null) {
          callback(new Error("请输入有效数字"));
        } else {
          var reg = /^\+?[0-9]\d*$/;
          if (!reg.test(value)) {
            callback(new Error("请填写不小于0的数字"));
          } else {
            callback();
          }
        }
      } else {
        callback();
      }
    },
    // 路线
    productClick() {
      
@@ -267,13 +272,76 @@
    handleClose() {
      this.editConfig.visible = false
    },
    // 刪除
    deleteClick() {
      let data = JSON.parse(JSON.stringify(this.editConfig.infomation));
      deleteLocation({ id: data.id }).then((res) => {
        if (res.code == 200) {
          this.editConfig.visible = false;
          this.$message.success("刪除成功!");
          this.$emit("refresh");
        } else {
            this.$message.warning(res.msg?res.msg:"删除失败!")
         }
      });
    },
    // 编辑
    editClick() {
      this.showEdit = false
      this.showFooter = true
    },
    saveParams() {
      let data =JSON.parse(JSON.stringify(this.editConfig.infomation));
      let params = {
        name:data.name,
        parentId:data.parentId+'',
        type:data.type,
        isScrapLocation:data.isScrapLocation,
        isReturnLocation:data.isReturnLocation,
        replenishLocation:data.replenishLocation,
        countFrequency:data.countFrequency?Number(data.countFrequency):0,
        recentlyCount:data.recentlyCount,
        nextCount:data.nextCount,
        notes:data.notes,
      }
      if(data.id){
        params.id=data.id
      }
      return params;
    },
    // 保存
    saveClick() {}
    saveClick(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          const params = this.saveParams();
            if (this.editConfig.title === "新建") {
              addLocation(params).then((res) => {
                if (res.code == 200) {
                  this.editConfig.visible = false;
                  this.$message.success("添加成功!");
                  this.$emit('refresh')
                } else {
                    this.$message.warning(res.msg?res.msg:"添加失败!")
                }
              });
            } else {
              updateLocation(params).then((res) => {
                if (res.code == 200) {
                  this.editConfig.visible = false;
                  this.$message.success("编辑成功!");
                  this.$emit('refresh')
                } else {
                    this.$message.warning(res.msg?res.msg:"编辑失败!")
                }
              });
            }
        }else {
          console.log("error submit");
          return false;
        }
      });
    }
  }
}
</script>