zuozhengqing
2023-11-15 7c5c3b8a1b2d571c66efd85b5dbbd37aa57c9ff8
采购管理修改
5个文件已修改
176 ■■■■ 已修改文件
src/api/purchaseManage/purchase.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/CommonFormTableView.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/getSupplierName.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/purchaseManage/purchase/components/AddPurchase.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/purchaseManage/purchase/index.vue 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/purchaseManage/purchase.js
@@ -90,7 +90,7 @@
//   提交采购单
export function submitPurchase(data) {
    return request({
      url: "/api/purchase/submit/"+data.id,
      url: "/api/purchase/submit",
      method: "post",
      data
    })
src/components/makepager/CommonFormTableView.vue
@@ -39,6 +39,7 @@
              :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]"
            >
              <el-input
                :disabled="item.disabled"
                v-model.trim="scope.row[item.prop]"
                maxlength="50"
                size="mini"
@@ -49,9 +50,10 @@
                "
              ></el-input>
            </el-form-item>
            <el-form-item v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
            <el-form-item  v-else-if="item.productName" label=" " :prop="'tableData.' + scope.$index + '.' + item.prop">
              <div class="custom-name">
                <el-autocomplete
                  :disabled="item.disabled"
                  v-model="scope.row[item.prop]"
                  :fetch-suggestions="querySearchAsync"
                  value-key="name"
@@ -63,13 +65,13 @@
                    }
                  "
                ></el-autocomplete>
                <div class="common-select-btn" @click="selClientClick(scope.row, item.prop, scope)">
                  <i class="el-icon-circle-plus-outline" title="选择"></i>
                <div v-if="!item.disabled" class="common-select-btn" @click="selClientClick(scope.row, item.prop, scope)">
                  <i  class="el-icon-circle-plus-outline" title="选择"></i>
                </div>
                <div class="common-select-btn" @click="clearupClient(scope.row, scope)">
                <div v-if="!item.disabled" class="common-select-btn" @click="clearupClient(scope.row, scope)">
                  <i class="el-icon-remove-outline" title="清除"></i>
                </div>
                <div class="common-select-btn" v-if="scope.$index != 0" @click="deleteClient(scope.row, scope)">
                <div class="common-select-btn" v-if="scope.$index != 0||!item.disabled" @click="deleteClient(scope.row, scope)">
                  <i class="el-icon-delete" title="删除"></i>
                </div>
              </div>
@@ -91,6 +93,7 @@
              :rules="[{ required: item.isRequird ? true : false, message: '输入不能为空' }]"
            >
              <el-input-number
                :disabled="item.disabled"
                v-model="scope.row[item.prop]"
                placeholder=""
                :min="0"
@@ -112,9 +115,9 @@
            >
              <template v-if="item.multiply">
                <el-input-number
                  :disabled="item.disabled"
                  :value="scope.row[showSummary.multiply[0]] * scope.row[showSummary.multiply[1]]"
                  placeholder=""
                  :disabled="item.disabled"
                  :min="0"
                  :precision="2"
                  :controls="false"
@@ -129,6 +132,7 @@
              </template>
              <template v-else>
                <el-input-number
                  :disabled="item.disabled"
                  v-model="scope.row[item.prop]"
                  placeholder=""
                  :min="0"
@@ -152,8 +156,8 @@
      </el-table>
    </el-form>
    <div v-if="!detailEnter" style="margin: 10px">
      <el-button size="small" type="primary" @click="add">新增</el-button>
      <el-button size="small" type="primary" @click="empty">清空</el-button>
      <el-button :disabled="tableList.disabled" size="small" type="primary" @click="add">新增</el-button>
      <el-button :disabled="tableList.disabled" size="small" type="primary" @click="empty">清空</el-button>
    </div>
    <!-- 产品名称 -->
    <SelectCommonDialog
@@ -184,6 +188,7 @@
      type: Object,
      default: () => {
        return {
          disabled:false,
          tableData: [], // 接口返回数据
          tableColumn: [
            // table表单
src/store/modules/getSupplierName.js
@@ -12,9 +12,9 @@
  },
  actions:{
    getSupplier(context){
      getSupplierList({page:1,pageSize:50}).then((res) => {
        if (res.data.code == 200) {
          context.commit("supplierNameList", res.data.data.list)
      getSupplierList({page:1,pageSize:100}).then((res) => {
        if (res.code == 200) {
          context.commit("supplierNameList", res.data.list)
        } else {
          Message.error(res.msg)
        }
src/views/purchaseManage/purchase/components/AddPurchase.vue
@@ -31,6 +31,7 @@
                  style="width:100%;"
                >
                  <el-select
                    :disabled="editConfig.isDisabled"
                    placeholder="请选择采购类型"
                    v-model="editConfig.infomation.purchaseTypeId"
                    clearable
@@ -44,6 +45,7 @@
                    ></el-option>
                  </el-select>
                  <i
                    v-if="!editConfig.isDisabled"
                    class="el-icon-setting margin_left_10px cursor_pointer"
                    style="font-size: 20px; color: #333"
                    @click="handleShow"
@@ -55,6 +57,7 @@
                <el-form-item label="供应商名称" prop="supplierName">
                  <div class="custom-name">
                    <el-autocomplete
                      :disabled="editConfig.isDisabled"
                      style="width: calc(100% - 40px)"
                      v-model="editConfig.infomation.supplierName"
                      :fetch-suggestions="
@@ -67,6 +70,7 @@
                      @select="handleSelectClient('client', $event)"
                    ></el-autocomplete>
                    <div
                      v-if="!editConfig.isDisabled"
                      class="common-select-btn"
                      @click="selClientClick('client')"
                    >
@@ -80,7 +84,8 @@
                      class="common-select-btn"
                      @click="clearupClient('client')"
                    >
                      <i class="el-icon-remove-outline" title="清除"></i>
                      <i class="el-icon-remove-outline"
                      v-if="!editConfig.isDisabled" title="清除"></i>
                    </div>
                  </div>
                </el-form-item>
@@ -97,6 +102,7 @@
              <el-col :span="12">
                <el-form-item label="采购单名称" prop="name">
                  <el-input
                    :disabled="editConfig.isDisabled"
                    v-model="editConfig.infomation.name"
                    placeholder="请填写"
                    clearable
@@ -106,6 +112,7 @@
              <el-col :span="12">
                <el-form-item label="供应商联系人" prop="contact">
                  <el-input
                    :disabled="editConfig.isDisabled"
                    v-model="editConfig.infomation.contact"
                    placeholder="请填写"
                    clearable
@@ -115,6 +122,7 @@
              <el-col :span="12">
                <el-form-item label="联系电话" prop="phone">
                  <el-input
                    :disabled="editConfig.isDisabled"
                    v-model="editConfig.infomation.phone"
                    placeholder="请填写"
                    clearable
@@ -124,6 +132,7 @@
              <el-col :span="12">
                <el-form-item label="签约日期" prop="signingDate">
                  <el-date-picker
                    :disabled="editConfig.isDisabled"
                    v-model="editConfig.infomation.signingDate"
                    style="width: 100%"
                    type="date"
@@ -137,6 +146,7 @@
              <el-col :span="12">
                <el-form-item label="交付日期" prop="deliveryDate">
                  <el-date-picker
                    :disabled="editConfig.isDisabled"
                    v-model="editConfig.infomation.deliveryDate"
                    style="width: 100%"
                    type="date"
@@ -150,6 +160,7 @@
              <el-col :span="24">
                <el-form-item label="备注信息" prop="remark">
                  <el-input
                    :disabled="editConfig.isDisabled"
                    type="textarea"
                    :autosize="{ minRows: 3, maxRows: 4 }"
                    maxlength="500"
@@ -182,6 +193,7 @@
                  <el-select
                    v-model="editConfig.infomation.wholeDiscountType"
                    placeholder="请选择"
                    :disabled="editConfig.isDisabled"
                    filterable
                    @change="getTotal"
                  >
@@ -195,7 +207,7 @@
                  <el-input
                    v-model="editConfig.infomation.wholeDiscount"
                    size="mini"
                    :disabled="editConfig.infomation.wholeDiscountType?false:true"
                    :disabled="editConfig.isDisabled"
                    @change="getTotal"
                    placeholder="请填写"
                  ></el-input>
@@ -206,6 +218,7 @@
              <div class="table-bottom-l">
                <el-form-item label="调整" prop="member_id">
                  <el-select
                    :disabled="editConfig.isDisabled"
                    v-model="editConfig.infomation.priceAdjustmentType"
                    placeholder="请选择"
                    filterable
@@ -219,9 +232,9 @@
              <div class="table-bottom-r">
                <el-form-item label="" prop="member_id">
                  <el-input
                    :disabled="editConfig.isDisabled"
                    v-model="editConfig.infomation.priceAdjustment"
                    size="mini"
                    :disabled="editConfig.infomation.priceAdjustmentType?false:true"
                    @change="getTotal"
                    placeholder="请填写"
                  ></el-input>
@@ -495,10 +508,8 @@
            this.$message.error("产品名称不能为空");
          } else {
            const params = this.saveParams();
            console.log(params);
            if (this.editConfig.title === "创建") {
              addPurchase(params).then((res) => {
                console.log(res);
                this.editConfig.visible = false;
                if (res.code === 200) {
                  this.$message.success("添加成功");
@@ -533,7 +544,7 @@
      let params = {
        productList:this.tableData,
        purchase:{
          supplierId:this.supplierId||0,
          supplierId:data.supplierId,
          signingDate:data.signingDate||'',
          remark:data.remark,
          orderSource:data.orderSource||'',
@@ -577,9 +588,9 @@
      };
    },
    handleSelectClient(value, item) {
      console.log(value);
      if (value === "client") {
        this.supplierId = item.id;
        this.editConfig.infomation.supplierId=item.ID
      }
    },
    selClientClick() {
@@ -624,6 +635,7 @@
      }
      this.productTableList = {
        tableData: this.tableData,
        disabled:this.editConfig.isDisabled,
        tableColumn: [
          {
            label: "产品名称",
@@ -631,19 +643,21 @@
            min: 180,
            productName: true,
            isRequird: true,
            disabled:this.editConfig.isDisabled,
          },
          { label: "产品编号", prop: "number", min: 150,},
          { label: "计量单位", prop: "unit" },
          { label: "规格型号", prop: "specifications" },
          { label: "数量", prop: "amount", inputNumber: true, isRequird: true },
          { label: "规格型号", prop: "specifications",},
          { label: "数量", prop: "amount", inputNumber: true,disabled:this.editConfig.isDisabled, },
          {
            label: "采购单价",
            prop: "price",
            inputFloat: true,
            isRequird: true,
            disabled:this.editConfig.isDisabled,
          },
          { label: "价税合计", prop: "total", inputFloat: true,disabled:true,multiply:true, },
          { label: "描述", prop: "remark", input: true },
          { label: "价税合计", prop: "total", inputFloat: true,disabled:this.editConfig.isDisabled,multiply:true, },
          { label: "描述", prop: "remark", input: true,disabled:this.editConfig.isDisabled},
        ],
      };
      this.toal=this.editConfig.infomation.realTotalPrice
src/views/purchaseManage/purchase/index.vue
@@ -30,12 +30,24 @@
                  {{ getpurchaseStatus(scope.row.status) }}
                </template>
              </el-table-column>
              <el-table-column label="操作" width="120" fixed="right">
              <el-table-column label="操作" width="220" fixed="right">
                <template slot-scope="scope">
                  <el-button type="text" size="small" @click="editClick(scope.row)" style="margin-right: 5px"
                  <el-button type="text" size="small" @click="btnConfirm(scope.row)" style="margin-right: 5px"
                  >确认</el-button
                  >
                  <el-button type="text" size="small" @click="btnEdit(scope.row)" style="margin-right: 5px"
                  >编辑</el-button
                  >
                  <el-button v-if="scope.row.status< 4" @click="submitClick(scope.row)" type="text" size="small">提交</el-button>
                  <el-button type="text" size="small" @click="btnLook(scope.row)" style="margin-right: 5px"
                  >查看</el-button
                  >
                  <el-button type="text" size="small" @click="btnCancel(scope.row)" style="margin-right: 5px"
                  >取消</el-button
                  >
                  <el-button type="text" size="small" @click="btnDelete(scope.row)" style="margin-right: 5px"
                  >删除</el-button
                  >
                  <!-- <el-button v-if="scope.row.status< 4" @click="submitClick(scope.row)" type="text" size="small">提交</el-button> -->
                </template>
              </el-table-column>
            </template>
@@ -53,16 +65,15 @@
    <!-- 详情 -->
    <DetailSupplier v-if="commonDetail.visible" :common-detail="commonDetail" />
    <!-- 新建/编辑 -->
    <AddPurchase v-if="editConfig.visible" :edit-common-config="editConfig" />
    <AddPurchase ref="addDialog" v-if="editConfig.visible" :edit-common-config="editConfig" />
  </div>
</template>
<script>
import pageMixin from "@/components/makepager/pager/mixin/pageMixin"
import { getPurchaseList, getPurchaseInfo, submitPurchase } from "@/api/purchaseManage/purchase"
import { getPurchaseList, getPurchaseInfo, submitPurchase,deletePurchase } from "@/api/purchaseManage/purchase"
import DetailSupplier from "@/views/purchaseManage/purchase/DetailSupplier"
import AddPurchase from "@/views/purchaseManage/purchase/components/AddPurchase"
import { getDataByType } from "@/api/data"
import { getSupplierList } from "@/api/supplierManage/supplier"
export default {
  name: "SupplierManage",
@@ -84,11 +95,11 @@
      editConfig: {
        visible: false,
        title: "创建",
        isDisabled:false,
        infomation: {
          supplierList:[]
        }
      },
      purchaseStatusList: getDataByType("purchaseStatus"),
      tableColumn: [
        { label: "采购单号", prop: "number", min: 150, isCommonClick: true ,default:true},
        { label: "采购单名称", prop: "name", min: 130, isCommonClick: true },
@@ -109,10 +120,17 @@
  },
  methods: {
    getpurchaseStatus(val) {
      let statusList=[
        {id:1,name:"待确认"},
        {id:2,name:"待入库"},
        {id:3,name:"已入库"},
        {id:4,name:"已完成"},
        {id:5,name:"已取消"}
      ]
      if (val) {
        for (let i in this.purchaseStatusList) {
          if (this.purchaseStatusList[i].id == val) {
            return this.purchaseStatusList[i].name
        for (let i in statusList) {
          if (statusList[i].id == val) {
            return statusList[i].name
          }
        }
      } else {
@@ -181,6 +199,7 @@
    },
    // 新建
    addBtnClick() {
      this.editConfig.isDisabled=false
      // this.editRow = {};
      // this.$refs.add.islook = true;
      this.editConfig.visible = true
@@ -206,7 +225,7 @@
    },
    // 编辑
    editClick(row) {
    btnEdit(row) {
      this.tableLoading = true
      getPurchaseInfo({ id: row.ID }).then((res) => {
        if (res.code == 200) {
@@ -229,15 +248,14 @@
      // this.$refs.add.islook = true;
    },
    // 确认发货
    submitClick(row) {
    btnConfirm(row) {
      this.$confirm("是否提交?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          console.log("dddd")
          submitPurchase({ id: row.ID }).then((response) => {
          submitPurchase({ id: row.ID,status:2 }).then((response) => {
            if (response.code === 200) {
              this.$message.success("提交成功")
              this.getData()
@@ -249,7 +267,70 @@
          console.error(e)
        })
    },
    // 取消
    btnCancel(row){
      this.$confirm("是否取消?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
      .then(() => {
        submitPurchase({ id: row.ID,status:5 }).then((response) => {
          if (response.code === 200) {
            this.$message.success("已取消")
            this.getData()
          } else {
            // this.$message.warning("提交失败")
          }
        })
      },(e)=>{
        console.error(e)
      })
    },
    // 删除
    btnDelete(row){
      this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          deletePurchase({ id: row.ID }).then((response) => {
            if (response.code === 200) {
              this.$message.success("删除成功")
              this.getData()
            } else {
              this.$message.warning("删除失败")
            }
          })
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消删除'
          });
        });
    },
    // 查看
    btnLook(row){
      this.editConfig.isDisabled=true
      this.tableLoading = true
      getPurchaseInfo({ id: row.ID }).then((res) => {
        if (res.code == 200) {
          this.tableLoading = false
          this.editConfig.visible = true
          this.editConfig.title = "查看"
          this.editConfig.infomation = {
            productList: res.data.productList,
            supplierName: res.data.purchase.supplier.name,
            ...res.data.purchase
          }
        } else {
          this.$message.error(res.msg ? res.msg + "," : "" + "获取信息失败!")
        }
      })
      setTimeout(() => {
        this.tableLoading = false
      }, 3000)
    },
    // 详情
    selCommonClick(row) {
      console.log(row)