unknown
2023-11-07 31cb0c2647468edf9205a74a18bb5680ed760fa6
web/src/views/MaterialsIndex/components/embedded/Income.vue
@@ -1,369 +1,369 @@
<template>
  <div class="main tabs_main" style="height:89%">
    <div class="main_header">
      <div class="header_item">
        <span class="header_label">预埋件名称:</span>
        <el-input v-model="search.embedmentName" placeholder="请选择预埋件名称" clearable></el-input>
      </div>
      <div class="header_item">
        <span class="header_label">规格型号:</span>
        <el-select v-model="search.embedmentModel" placeholder="请选择规格型号" clearable>
          <el-option v-for="item in optionsNames" :key="item.id" :label="item.embedmentModel"
            :value="item.embedmentModel">
          </el-option>
        </el-select>
      </div>
      <div class="header_item">
        <span class="header_label">时间范围:</span>
        <el-date-picker v-model="search.time" type="daterange" :default-time="['00:00:00', '23:59:59']" clearable
          value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" start-placeholder="起始时间" end-placeholder="结束时间">
        </el-date-picker>
      </div>
      <div class="header_item">
        <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button>
        <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button>
        <el-button icon="el-icon-upload2" v-if="showButton('export')" @click="exportIncomeData">导出Excel</el-button>
        <el-button icon="el-icon-postcard" v-if="showButton('export')" @click="exportIncomeFile">导出模板</el-button>
        <el-upload class="upload-demo" style="margin-left:10px" action="" :multiple="false" :http-request="httpRequest"
          :show-file-list="false" :file-list="fileList">
          <el-button icon="el-icon-download" v-if="showButton('exportIn')" :size="size">导入Excel</el-button>
        </el-upload>
      </div>
    </div>
    <div class="main_content">
      <el-table v-loading="loading" :data="dataList" height="100%">
        <el-table-column align="center" label="序号" width="60">
          <template #default="scope">
            <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="embedmentName" label="预埋件名称" align="center" width="180"></el-table-column>
        <el-table-column prop="embedmentModel" label="规格型号" align="center" width="120"></el-table-column>
        <el-table-column prop="changeStock" label="入库数量" align="center"></el-table-column>
        <el-table-column prop="singlePrice" label="单价" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column prop="amount" label="金额" align="center"></el-table-column>
        <el-table-column prop="createTime" label="入库时间" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column label="操作" align="center" width="140">
          <template #default="scope">
            <el-button class="table_btn" size="mini" v-if="showButton('update')"
              @click="updateProp(scope.$index)">修改</el-button>
            <el-button class="delete_btn" size="mini" v-if="showButton('delete')"
              @click="deleteInfo(scope.row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
    <div class="main_footer">
      <el-pagination background @current-change="changePageNum" @size-change="changePageSize" :current-page="pageNum"
        :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
        :total="total">
      </el-pagination>
    </div>
    <el-dialog class="prop_dialog" :title="asyncTitle ? '新增入库' : '修改入库信息'" :close-on-click-modal="false"
      :visible.sync="asyncVisible" width="35%">
      <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form">
        <el-form-item label="预埋件名称:" prop="embedmentId">
          <el-select v-model="ruleForm.embedmentId" :size="size" placeholder="请选择预埋件名称" @change="changeName">
            <el-option v-for="item in optionsNames" :key="item.id"
              :label="`${item.embedmentName} - ${item.embedmentModel}`" :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="规格型号:" prop="embedmentModel">
          <el-input v-model="ruleForm.embedmentModel" placeholder="请选择规格型号" disabled></el-input>
        </el-form-item>
        <el-form-item label="入库数量:" prop="changeStock">
          <el-input v-model="ruleForm.changeStock" :size="size" type="number" clearable placeholder="请输入入库数量"
            @blur="priceChange"></el-input>
        </el-form-item>
        <el-form-item label="单价:" prop="singlePrice">
          <el-input v-model="ruleForm.singlePrice" type="number" :size="size" clearable placeholder="请输入单价"
            @blur="priceChange"></el-input>
        </el-form-item>
        <el-form-item label="金额:" prop="amount">
          <el-input v-model="ruleForm.amount" :size="size" clearable placeholder="请输入金额" :disabled="disabled"></el-input>
        </el-form-item>
        <el-form-item label="备注:" prop="remark">
          <el-input v-model="ruleForm.remark" :size="size" type="textarea" :rows="2" clearable
            placeholder="请输入备注"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer">
        <el-button @click="asyncVisible = false">取 消</el-button>
        <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {buttonPinia} from '@/pinia/index';
import {throttle, changeSize, downFiles} from '@/plugins/public'; // 导入节流、动态切换组件尺寸方法
export default {
  data() {
    return {
      size: changeSize(), // 组件尺寸
      pageNum: 1,
      pageSize: 10,
      search: {},//查询条件
      total: 0,
      loading: false,
      disabled: false,//是否禁止修改
      dataList: [], //入库记录信息列表
      asyncTitle: true, // 对话框title 新增:true  修改:false
      asyncVisible: false, // 添加 修改对话框
      ruleForm: {
        embedmentModel: '',
      }, // 按钮表单
      rules: {
        embedmentId: [{
          required: true,
          message: '请选择物品型号',
          trigger: 'change'
        }],
        embedmentModel: [{
          required: true,
          message: '请选择供应商',
          trigger: 'blur'
        }],
        changeStock: [{
          required: true,
          message: '请输入入库数量',
          trigger: 'blur'
        }],
        singlePrice: [{
          required: true,
          message: '请输入单价',
          trigger: 'blur'
        }],
        amount: [{
          required: true,
          message: '请输入金额',
          trigger: 'blur'
        }],
      },
      optionsNames: [],//物品名称
      fileList: [],//导入
    }
  },
  watch: {
    asyncVisible(bol) {
      if (!bol) {
        this.ruleForm = {};
        this.$refs.ruleForm.resetFields();
      }
    }
  },
  mounted() {
    const that = this;
    // 根据窗口大小动态修改组件尺寸
    window.onresize = () => {
      that.size = changeSize();
    }
  },
  methods: {
    //导出数据
    exportIncomeData() {
      this.functionLoading();
      let params = Object.assign({}, this.search, {
        stockType: 1
      })
      this.$api.Materials.embedded.incomeExportxls(params).then(res => {
        downFiles(res, '入库记录信息', 'xls')
        this.loadingView.close()
      })
        .catch(() => {
          this.loadingView.close();
        })
    },
    //计算金额
    priceChange() {
      if (this.ruleForm.singlePrice !== undefined && this.ruleForm.changeStock !== undefined) {
        this.$set(this.ruleForm, 'amount', this.ruleForm.singlePrice * 1 * this.ruleForm.changeStock)
      } else {
        this.$set(this.ruleForm, 'amount', ' ')
      }
    },
    //获取所有预埋件名称
    getNameList() {
      let params = {
        pageNum: 1,
        pageSize: 100000000
      }
      this.$api.Materials.embedded.typeGetLists(params).then(res => {
        if (res.statusMsg === 'ok') {
          this.optionsNames = res.data.list
        }
      })
    },
    //自定义上传
    httpRequest({file}) {
      this.functionLoading();
      const formData = new FormData();
      formData.set('file', file);
      this.$api.Materials.embedded.incomeInXls(formData).then((res) => {
        if (res.success) {
          this.searchButtonInfo();
          this.$message.success('上传成功!');
          this.loadingView.close();
        } else {
          this.$message.warning(typeof (res.data) === 'object' ? res.statusMsg : res.data);
          this.loadingView.close();
        }
      })
        .catch(() => {
          this.$message.error('请检查网络设置!');
          this.loadingView.close();
        })
    },
    // 转圈圈
    functionLoading() {
      this.loadingView = this.$loading({
        lock: true,
        text: '请稍后...',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.7)'
      });
    },
    //导出模板
    exportIncomeFile() {
      this.functionLoading();
      this.$api.Materials.embedded.incomeExportXls({}).then(res => {
        downFiles(res, '入库记录信息模板', 'xls')
        this.loadingView.close()
      })
        .catch(() => {
          this.loadingView.close();
        })
    },
    // 查询按钮列表信息
    searchButtonInfo(bol) {
      if (bol) {
        this.pageNum = 1;
      }
      let params = Object.assign({}, this.search, {
        pageNum: this.pageNum,
        pageSize: this.pageSize,
        stockType: 1
      })
      params.strTime = this.search.time && this.search.time[0]
      params.endTime = this.search.time && this.search.time[1]
      delete params.time
      this.loading = true;
      this.$api.Materials.embedded.incomeGetLists(params).then((res) => {
        if (res.statusMsg === 'ok') {
          this.total = res.data.total;
          this.dataList = res.data.list;
        } else {
          this.$message.warning(res.statusMsg)
        }
        this.loading = false;
      })
    },
    // 根据预埋件名称选择规格型号
    changeName(val) {
      const array = this.optionsNames
      for (let index = 0; index < array.length; index++) {
        const item = array[index]
        if (item.id === val) {
          this.ruleForm.embedmentModel = item.embedmentModel
          break
        }
      }
    },
    // 修改按钮信息
    updateProp(index) {
      this.asyncTitle = false;
      this.asyncVisible = true;
      this.disabled = true
      this.ruleForm = this.dataList[index]
    },
    // 新增按钮信息
    insertProp() {
      this.asyncTitle = true;
      this.asyncVisible = true;
      this.disabled = true
    },
    // 删除按钮信息
    deleteInfo(row) {
      this.$confirm("该操作将删除该信息,是否继续删除?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        this.$api.Materials.embedded.incomeDel({id: row.id})
          .then(res => {
            if (res.statusMsg === 'ok') {
              this.searchButtonInfo(true);
              this.$message.success("删除成功!");
            } else {
              this.$message.warning(res.statusMsg);
            }
          })
      }).catch(() => {
        this.$message.warning("您已取消");
      })
    },
    // 提交添加按钮信息
    submitInsert: throttle(function () {
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          const params = Object.assign({}, this.ruleForm);
          params.changeStock = this.ruleForm.changeStock * 1
          params.singlePrice = this.ruleForm.singlePrice * 1
          params.stockType = 1
          this.$api.Materials.embedded.incomeInsert(params).then((res) => {
            if (res.statusMsg === 'ok') {
              this.asyncVisible = false;
              this.searchButtonInfo(true);
              this.$message.success('添加成功!');
            } else {
              this.$message.warning(res.statusMsg);
            }
          })
        }
      })
    }, 3000),
    // 提交修改按钮信息
    submitUpdate: throttle(function () {
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          const params = Object.assign({}, this.ruleForm);
          params.changeStock = this.ruleForm.changeStock * 1
          params.singlePrice = this.ruleForm.singlePrice * 1
          params.stockType = 1
          this.$api.Materials.embedded.incomeUpdate(params).then((res) => {
            if (res.statusMsg === 'ok') {
              this.asyncVisible = false;
              this.searchButtonInfo(true);
              this.$message.success('修改成功!');
            } else {
              this.$message.warning(res.statusMsg);
            }
          })
        }
      })
    }, 3000),
    // 判断按钮权限信息
    showButton(str) {
      const pinia = buttonPinia();
      return pinia.$state.buttonInfo.includes(str);
    },
    // 切换页数
    changePageNum(page) {
      this.pageNum = page;
      this.searchButtonInfo();
    },
    // 切换每页条数
    changePageSize(size) {
      this.pageSize = size;
      this.searchButtonInfo();
    }
  }
}
</script>
<style lang="scss" scoped>
@import '@/style/layout-main.scss';
<template>
  <div class="main tabs_main" style="height:89%">
    <div class="main_header">
      <div class="header_item">
        <span class="header_label">预埋件名称:</span>
        <el-input v-model="search.embedmentName" placeholder="请输入预埋件名称" clearable></el-input>
      </div>
      <div class="header_item">
        <span class="header_label">规格型号:</span>
        <el-select v-model="search.embedmentModel" placeholder="请选择规格型号" clearable>
          <el-option v-for="item in optionsNames" :key="item.id" :label="item.embedmentModel"
            :value="item.embedmentModel">
          </el-option>
        </el-select>
      </div>
      <div class="header_item">
        <span class="header_label">时间范围:</span>
        <el-date-picker v-model="search.time" type="daterange" :default-time="['00:00:00', '23:59:59']" clearable
          value-format="yyyy-MM-dd HH:mm:ss" range-separator="-" start-placeholder="起始时间" end-placeholder="结束时间">
        </el-date-picker>
      </div>
      <div class="header_item">
        <el-button icon="el-icon-search" v-if="showButton('search')" @click="searchButtonInfo(true)">查询</el-button>
        <el-button class="search_btn" icon="el-icon-plus" v-if="showButton('insert')" @click="insertProp">新增</el-button>
        <el-button icon="el-icon-upload2" v-if="showButton('export')" @click="exportIncomeData">导出Excel</el-button>
        <el-button icon="el-icon-postcard" v-if="showButton('export')" @click="exportIncomeFile">导出模板</el-button>
        <el-upload class="upload-demo" style="margin-left:10px" action="" :multiple="false" :http-request="httpRequest"
          :show-file-list="false" :file-list="fileList">
          <el-button icon="el-icon-download" v-if="showButton('exportIn')" :size="size">导入Excel</el-button>
        </el-upload>
      </div>
    </div>
    <div class="main_content">
      <el-table v-loading="loading" :data="dataList" height="100%">
        <el-table-column align="center" label="序号" width="60">
          <template #default="scope">
            <span>{{ (pageNum - 1) * pageSize + scope.$index + 1 }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="embedmentName" label="预埋件名称" align="center" width="180"></el-table-column>
        <el-table-column prop="embedmentModel" label="规格型号" align="center" width="120"></el-table-column>
        <el-table-column prop="changeStock" label="入库数量" align="center"></el-table-column>
        <el-table-column prop="singlePrice" label="单价" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column prop="amount" label="金额" align="center"></el-table-column>
        <el-table-column prop="createTime" label="入库时间" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column prop="remark" label="备注" align="center" show-overflow-tooltip></el-table-column>
        <el-table-column label="操作" align="center" width="140">
          <template #default="scope">
            <el-button class="table_btn" size="mini" v-if="showButton('update')"
              @click="updateProp(scope.$index)">修改</el-button>
            <el-button class="delete_btn" size="mini" v-if="showButton('delete')"
              @click="deleteInfo(scope.row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
    </div>
    <div class="main_footer">
      <el-pagination background @current-change="changePageNum" @size-change="changePageSize" :current-page="pageNum"
        :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper"
        :total="total">
      </el-pagination>
    </div>
    <el-dialog class="prop_dialog" :title="asyncTitle ? '新增入库' : '修改入库信息'" :close-on-click-modal="false"
      :visible.sync="asyncVisible" width="35%">
      <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="auto" class="rule_form">
        <el-form-item label="预埋件名称:" prop="embedmentId">
          <el-select v-model="ruleForm.embedmentId" :size="size" placeholder="请选择预埋件名称" @change="changeName">
            <el-option v-for="item in optionsNames" :key="item.id"
              :label="`${item.embedmentName} - ${item.embedmentModel}`" :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="规格型号:" prop="embedmentModel">
          <el-input v-model="ruleForm.embedmentModel" placeholder="请选择规格型号" disabled></el-input>
        </el-form-item>
        <el-form-item label="入库数量:" prop="changeStock">
          <el-input v-model="ruleForm.changeStock" :size="size" type="number" clearable placeholder="请输入入库数量"
            @blur="priceChange"></el-input>
        </el-form-item>
        <el-form-item label="单价:" prop="singlePrice">
          <el-input v-model="ruleForm.singlePrice" type="number" :size="size" clearable placeholder="请输入单价"
            @blur="priceChange"></el-input>
        </el-form-item>
        <el-form-item label="金额:" prop="amount">
          <el-input v-model="ruleForm.amount" :size="size" clearable placeholder="请输入金额" :disabled="disabled"></el-input>
        </el-form-item>
        <el-form-item label="备注:" prop="remark">
          <el-input v-model="ruleForm.remark" :size="size" type="textarea" :rows="2" clearable
            placeholder="请输入备注"></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer">
        <el-button @click="asyncVisible = false">取 消</el-button>
        <el-button class="submit_btn" @click="asyncTitle ? submitInsert() : submitUpdate()">提 交</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import {buttonPinia} from '@/pinia/index';
import {throttle, changeSize, downFiles} from '@/plugins/public'; // 导入节流、动态切换组件尺寸方法
export default {
  data() {
    return {
      size: changeSize(), // 组件尺寸
      pageNum: 1,
      pageSize: 10,
      search: {},//查询条件
      total: 0,
      loading: false,
      disabled: false,//是否禁止修改
      dataList: [], //入库记录信息列表
      asyncTitle: true, // 对话框title 新增:true  修改:false
      asyncVisible: false, // 添加 修改对话框
      ruleForm: {
        embedmentModel: '',
      }, // 按钮表单
      rules: {
        embedmentId: [{
          required: true,
          message: '请选择物品型号',
          trigger: 'change'
        }],
        embedmentModel: [{
          required: true,
          message: '请选择供应商',
          trigger: 'blur'
        }],
        changeStock: [{
          required: true,
          message: '请输入入库数量',
          trigger: 'blur'
        }],
        singlePrice: [{
          required: true,
          message: '请输入单价',
          trigger: 'blur'
        }],
        amount: [{
          required: true,
          message: '请输入金额',
          trigger: 'blur'
        }],
      },
      optionsNames: [],//物品名称
      fileList: [],//导入
    }
  },
  watch: {
    asyncVisible(bol) {
      if (!bol) {
        this.ruleForm = {};
        this.$refs.ruleForm.resetFields();
      }
    }
  },
  mounted() {
    const that = this;
    // 根据窗口大小动态修改组件尺寸
    window.onresize = () => {
      that.size = changeSize();
    }
  },
  methods: {
    //导出数据
    exportIncomeData() {
      this.functionLoading();
      let params = Object.assign({}, this.search, {
        stockType: 1
      })
      this.$api.Materials.embedded.incomeExportxls(params).then(res => {
        downFiles(res, '入库记录信息', 'xls')
        this.loadingView.close()
      })
        .catch(() => {
          this.loadingView.close();
        })
    },
    //计算金额
    priceChange() {
      if (this.ruleForm.singlePrice !== undefined && this.ruleForm.changeStock !== undefined) {
        this.$set(this.ruleForm, 'amount', this.ruleForm.singlePrice * 1 * this.ruleForm.changeStock)
      } else {
        this.$set(this.ruleForm, 'amount', ' ')
      }
    },
    //获取所有预埋件名称
    getNameList() {
      let params = {
        pageNum: 1,
        pageSize: 100000000
      }
      this.$api.Materials.embedded.typeGetLists(params).then(res => {
        if (res.statusMsg === 'ok') {
          this.optionsNames = res.data.list
        }
      })
    },
    //自定义上传
    httpRequest({file}) {
      this.functionLoading();
      const formData = new FormData();
      formData.set('file', file);
      this.$api.Materials.embedded.incomeInXls(formData).then((res) => {
        if (res.success) {
          this.searchButtonInfo();
          this.$message.success('上传成功!');
          this.loadingView.close();
        } else {
          this.$message.warning(typeof (res.data) === 'object' ? res.statusMsg : res.data);
          this.loadingView.close();
        }
      })
        .catch(() => {
          this.$message.error('请检查网络设置!');
          this.loadingView.close();
        })
    },
    // 转圈圈
    functionLoading() {
      this.loadingView = this.$loading({
        lock: true,
        text: '请稍后...',
        spinner: 'el-icon-loading',
        background: 'rgba(0, 0, 0, 0.7)'
      });
    },
    //导出模板
    exportIncomeFile() {
      this.functionLoading();
      this.$api.Materials.embedded.incomeExportXls({}).then(res => {
        downFiles(res, '入库记录信息模板', 'xls')
        this.loadingView.close()
      })
        .catch(() => {
          this.loadingView.close();
        })
    },
    // 查询按钮列表信息
    searchButtonInfo(bol) {
      if (bol) {
        this.pageNum = 1;
      }
      let params = Object.assign({}, this.search, {
        pageNum: this.pageNum,
        pageSize: this.pageSize,
        stockType: 1
      })
      params.strTime = this.search.time && this.search.time[0]
      params.endTime = this.search.time && this.search.time[1]
      delete params.time
      this.loading = true;
      this.$api.Materials.embedded.incomeGetLists(params).then((res) => {
        if (res.statusMsg === 'ok') {
          this.total = res.data.total;
          this.dataList = res.data.list;
        } else {
          this.$message.warning(res.statusMsg)
        }
        this.loading = false;
      })
    },
    // 根据预埋件名称选择规格型号
    changeName(val) {
      const array = this.optionsNames
      for (let index = 0; index < array.length; index++) {
        const item = array[index]
        if (item.id === val) {
          this.ruleForm.embedmentModel = item.embedmentModel
          break
        }
      }
    },
    // 修改按钮信息
    updateProp(index) {
      this.asyncTitle = false;
      this.asyncVisible = true;
      this.disabled = true
      this.ruleForm = this.dataList[index]
    },
    // 新增按钮信息
    insertProp() {
      this.asyncTitle = true;
      this.asyncVisible = true;
      this.disabled = true
    },
    // 删除按钮信息
    deleteInfo(row) {
      this.$confirm("该操作将删除该信息,是否继续删除?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        this.$api.Materials.embedded.incomeDel({id: row.id})
          .then(res => {
            if (res.statusMsg === 'ok') {
              this.searchButtonInfo(true);
              this.$message.success("删除成功!");
            } else {
              this.$message.warning(res.statusMsg);
            }
          })
      }).catch(() => {
        this.$message.warning("您已取消");
      })
    },
    // 提交添加按钮信息
    submitInsert: throttle(function () {
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          const params = Object.assign({}, this.ruleForm);
          params.changeStock = this.ruleForm.changeStock * 1
          params.singlePrice = this.ruleForm.singlePrice * 1
          params.stockType = 1
          this.$api.Materials.embedded.incomeInsert(params).then((res) => {
            if (res.statusMsg === 'ok') {
              this.asyncVisible = false;
              this.searchButtonInfo(true);
              this.$message.success('添加成功!');
            } else {
              this.$message.warning(res.statusMsg);
            }
          })
        }
      })
    }, 3000),
    // 提交修改按钮信息
    submitUpdate: throttle(function () {
      this.$refs.ruleForm.validate((valid) => {
        if (valid) {
          const params = Object.assign({}, this.ruleForm);
          params.changeStock = this.ruleForm.changeStock * 1
          params.singlePrice = this.ruleForm.singlePrice * 1
          params.stockType = 1
          this.$api.Materials.embedded.incomeUpdate(params).then((res) => {
            if (res.statusMsg === 'ok') {
              this.asyncVisible = false;
              this.searchButtonInfo(true);
              this.$message.success('修改成功!');
            } else {
              this.$message.warning(res.statusMsg);
            }
          })
        }
      })
    }, 3000),
    // 判断按钮权限信息
    showButton(str) {
      const pinia = buttonPinia();
      return pinia.$state.buttonInfo.includes(str);
    },
    // 切换页数
    changePageNum(page) {
      this.pageNum = page;
      this.searchButtonInfo();
    },
    // 切换每页条数
    changePageSize(size) {
      this.pageSize = size;
      this.searchButtonInfo();
    }
  }
}
</script>
<style lang="scss" scoped>
@import '@/style/layout-main.scss';
</style>