This commit is contained in:
		
							parent
							
								
									2978e8ab90
								
							
						
					
					
						commit
						ae65a5d711
					
				| 
						 | 
				
			
			@ -773,3 +773,49 @@ export function getListDetailsApi(data) {
 | 
			
		|||
    params: data
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//分公司下拉
 | 
			
		||||
export function getImpUnitListApi(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/material/material_maMachine/getImpUnitNameList',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//项目部下拉
 | 
			
		||||
export function getDepartListByImpUnitApi(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/material/material_maMachine/getDepartNameList',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//工程下拉
 | 
			
		||||
export function getProListByDepartApi(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/material/material_maMachine/getProjectList',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//班组下拉
 | 
			
		||||
export function getTeamList(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/material/material_maMachine/getTeamList',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//分包单位下拉
 | 
			
		||||
export function getSubUnitList(query) {
 | 
			
		||||
  return request({
 | 
			
		||||
    url: '/material/material_maMachine/getSubUnitList',
 | 
			
		||||
    method: 'get',
 | 
			
		||||
    params: query
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,67 +2,127 @@
 | 
			
		|||
  <div class="app-container" id="">
 | 
			
		||||
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
 | 
			
		||||
      <el-form-item label="分公司" prop="impUnitName">
 | 
			
		||||
        <el-input
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.impUnitName"
 | 
			
		||||
          placeholder="请输入分公司"
 | 
			
		||||
          placeholder="请选择分公司"
 | 
			
		||||
          clearable
 | 
			
		||||
          :maxlength="50"
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
        />
 | 
			
		||||
          @change="handleImpUnitChange"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in impUnitOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="项目部" prop="departName">
 | 
			
		||||
        <el-input
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.departName"
 | 
			
		||||
          placeholder="请输入项目部"
 | 
			
		||||
          placeholder="请选择项目部"
 | 
			
		||||
          clearable
 | 
			
		||||
          :maxlength="50"
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
        />
 | 
			
		||||
          @change="handleDepartChange"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in departOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="工程" prop="proName">
 | 
			
		||||
        <el-input
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.proName"
 | 
			
		||||
          placeholder="请输入工程"
 | 
			
		||||
          placeholder="请选择工程"
 | 
			
		||||
          clearable
 | 
			
		||||
          :maxlength="50"
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
        />
 | 
			
		||||
          @change="getTeamList"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in proOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="分包单位" prop="subUnitName">
 | 
			
		||||
        <el-input
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.subUnitName"
 | 
			
		||||
          placeholder="请输入分包单位"
 | 
			
		||||
          placeholder="请选择分包单位"
 | 
			
		||||
          clearable
 | 
			
		||||
          :maxlength="50"
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
        />
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in subUnitOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="班组名称" prop="teamName">
 | 
			
		||||
        <el-input
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.teamName"
 | 
			
		||||
          placeholder="请输入班组名称"
 | 
			
		||||
          placeholder="请选择班组"
 | 
			
		||||
          clearable
 | 
			
		||||
          :maxlength="50"
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
        />
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in teamOptions"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.value"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="物资名称" prop="typeName">
 | 
			
		||||
        <el-input
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.typeName"
 | 
			
		||||
          placeholder="请输入物资名称"
 | 
			
		||||
          placeholder="请选择物资名称"
 | 
			
		||||
          clearable
 | 
			
		||||
          :maxlength="50"
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
        />
 | 
			
		||||
          @change="handleMaModel"
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in materialNameList"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.label"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
 | 
			
		||||
      <el-form-item label="规格型号" prop="typeModelName">
 | 
			
		||||
        <el-input
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="queryParams.typeModelName"
 | 
			
		||||
          placeholder="请输入规格型号"
 | 
			
		||||
          placeholder="请选择规格型号"
 | 
			
		||||
          clearable
 | 
			
		||||
          :maxlength="50"
 | 
			
		||||
          filterable
 | 
			
		||||
          style="width: 240px"
 | 
			
		||||
        />
 | 
			
		||||
        >
 | 
			
		||||
          <el-option
 | 
			
		||||
            v-for="item in materialModelList"
 | 
			
		||||
            :key="item.value"
 | 
			
		||||
            :label="item.label"
 | 
			
		||||
            :value="item.label"
 | 
			
		||||
          />
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item>
 | 
			
		||||
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button>
 | 
			
		||||
| 
						 | 
				
			
			@ -87,18 +147,30 @@
 | 
			
		|||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="tip-box">
 | 
			
		||||
          <div class="tip-num">{{ tipForm.allNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">总保有量</div>
 | 
			
		||||
          <div class="tip-num">{{ tipForm.countNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">计件类总保有量</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="tip-box">
 | 
			
		||||
          <div class="tip-num">{{ tipForm.ropeNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">绳索类总保有量</div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="tip-box">
 | 
			
		||||
          <div class="tip-num">{{ tipForm.inNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">站内数量</div>
 | 
			
		||||
          <div class="tip-num">{{ tipForm.inCountNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">计件类站内数量</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="tip-box">
 | 
			
		||||
          <div class="tip-num">{{ tipForm.inRopeNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">绳索类站内数量</div>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div class="tip-box">
 | 
			
		||||
          <div class="tip-num">{{ tipForm.useNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">在用数量</div>
 | 
			
		||||
          <div class="tip-num">{{ tipForm.useCountNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">计件类在用数量</div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="tip-box">
 | 
			
		||||
          <div class="tip-num">{{ tipForm.useRopeNum || 0 }}</div>
 | 
			
		||||
          <div class="tip-text">绳索类在用数量</div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </el-row>
 | 
			
		||||
| 
						 | 
				
			
			@ -133,6 +205,7 @@
 | 
			
		|||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="物资名称" align="center" prop="typeName" :show-overflow-tooltip="true" />
 | 
			
		||||
      <el-table-column label="规格型号" align="center" prop="typeModelName" :show-overflow-tooltip="true" />
 | 
			
		||||
      <el-table-column label="机具类型" align="center" prop="jiJuType" :show-overflow-tooltip="true" />
 | 
			
		||||
      <el-table-column label="计量单位" align="center" prop="unit" :show-overflow-tooltip="true" />
 | 
			
		||||
      <el-table-column label="数量" align="center" prop="allNum" :show-overflow-tooltip="true">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
| 
						 | 
				
			
			@ -201,7 +274,13 @@
 | 
			
		|||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getProTotalListApi, getStorageInfoListApi, getRetainedEquipmentListApi } from '@/api/materialsStation'
 | 
			
		||||
import {
 | 
			
		||||
  getProTotalListApi,
 | 
			
		||||
  getStorageInfoListApi,
 | 
			
		||||
  getRetainedEquipmentListApi,
 | 
			
		||||
  getImpUnitListApi, getDepartListByImpUnitApi, getProListByDepartApi, getTeamList, getSubUnitList
 | 
			
		||||
} from '@/api/materialsStation'
 | 
			
		||||
import {getDeviceType} from "@/api/ma/device";
 | 
			
		||||
export default {
 | 
			
		||||
  name: '',
 | 
			
		||||
  dicts: [],
 | 
			
		||||
| 
						 | 
				
			
			@ -241,7 +320,13 @@ export default {
 | 
			
		|||
        teamNum: 0, // 班组总数
 | 
			
		||||
        allNum: 0, // 总保有量
 | 
			
		||||
        inNum: 0, // 站内数量
 | 
			
		||||
        useNum: 0 // 在用数量
 | 
			
		||||
        useNum: 0, // 在用数量
 | 
			
		||||
        countNum:0,
 | 
			
		||||
        ropeNum:0,
 | 
			
		||||
        inCountNum:0,
 | 
			
		||||
        inRopeNum:0,
 | 
			
		||||
        useCountNum:0,
 | 
			
		||||
        useRopeNum:0,
 | 
			
		||||
      },
 | 
			
		||||
 | 
			
		||||
      //在库弹窗
 | 
			
		||||
| 
						 | 
				
			
			@ -252,13 +337,176 @@ export default {
 | 
			
		|||
        pageSize: 10,
 | 
			
		||||
        keyWord: undefined
 | 
			
		||||
      },
 | 
			
		||||
      dialogTotal: 0
 | 
			
		||||
      dialogTotal: 0,
 | 
			
		||||
      impUnitOptions: [],   // 分公司下拉
 | 
			
		||||
      departOptions: [],    // 项目部下拉
 | 
			
		||||
      proOptions: [],       // 工程下拉
 | 
			
		||||
      subUnitOptions: [],   // 分包单位下拉
 | 
			
		||||
      teamOptions: [],      // 班组下拉
 | 
			
		||||
      materialNameList: [],
 | 
			
		||||
      materialModelList: [],
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.getList()
 | 
			
		||||
    this.getImpUnitOptions()
 | 
			
		||||
    this.handleImpUnitChange()
 | 
			
		||||
    this.handleDepartChange()
 | 
			
		||||
    this.getTeamList()
 | 
			
		||||
    this.getSubUnitList()
 | 
			
		||||
    this.getDeviceType()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    // async getSelect() {
 | 
			
		||||
    //   await this.getImpUnitOptions()
 | 
			
		||||
    //   await this.handleImpUnitChange()
 | 
			
		||||
    //   await this.handleDepartChange()
 | 
			
		||||
    //   await this.getTeamList()
 | 
			
		||||
    //   await this.getSubUnitList()
 | 
			
		||||
    // },
 | 
			
		||||
    /** 获取分公司下拉 */
 | 
			
		||||
    async getImpUnitOptions() {
 | 
			
		||||
      try {
 | 
			
		||||
        const res = await getImpUnitListApi() // 调后台接口
 | 
			
		||||
        this.impUnitOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.impUnitName,   // 这里根据实际字段替换
 | 
			
		||||
          value: item.impUnitName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取分公司下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 分公司选择变化,加载项目部 */
 | 
			
		||||
    async handleImpUnitChange() {
 | 
			
		||||
      this.queryParams.departName = null // 清空项目部已选
 | 
			
		||||
      this.departOptions = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
          proName: this.queryParams.proName,
 | 
			
		||||
          teamName:this.queryParams.teamName,
 | 
			
		||||
          subUnitName:this.queryParams.subUnitName,
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getDepartListByImpUnitApi({ params })
 | 
			
		||||
        this.departOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.departName,   // 项目部名称字段
 | 
			
		||||
          value: item.departName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取项目部下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 项目部选择变化,加载工程 */
 | 
			
		||||
    async handleDepartChange() {
 | 
			
		||||
      this.queryParams.proName = null // 清空工程已选
 | 
			
		||||
      this.proOptions = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        // 同时传入分公司和项目部参数
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
          proName: this.queryParams.proName,
 | 
			
		||||
          teamName:this.queryParams.teamName,
 | 
			
		||||
          subUnitName:this.queryParams.subUnitName,
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getProListByDepartApi(params)
 | 
			
		||||
        this.proOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.proName,   // 工程名称字段
 | 
			
		||||
          value: item.proName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取工程下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 项目部选择变化,加载工程 */
 | 
			
		||||
    async getTeamList() {
 | 
			
		||||
      this.queryParams.teamName = null // 清空工程已选
 | 
			
		||||
      this.teamOptions = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        // 同时传入分公司和项目部参数
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
          proName: this.queryParams.proName,
 | 
			
		||||
          teamName:this.queryParams.teamName,
 | 
			
		||||
          subUnitName:this.queryParams.subUnitName,
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getTeamList(params)
 | 
			
		||||
        this.teamOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.teamName,   // 工程名称字段
 | 
			
		||||
          value: item.teamName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取工程下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    async getSubUnitList() {
 | 
			
		||||
      this.queryParams.subUnitName = null // 清空工程已选
 | 
			
		||||
      this.subUnitOptions = []            // 清空原有下拉
 | 
			
		||||
 | 
			
		||||
      try {
 | 
			
		||||
        // 同时传入分公司和项目部参数
 | 
			
		||||
        const params = {
 | 
			
		||||
          impUnitName: this.queryParams.impUnitName, // 分公司名称
 | 
			
		||||
          departName: this.queryParams.departName, // 项目部名称
 | 
			
		||||
          proName: this.queryParams.proName,
 | 
			
		||||
          teamName:this.queryParams.teamName,
 | 
			
		||||
          subUnitName:this.queryParams.subUnitName,
 | 
			
		||||
        }
 | 
			
		||||
        const res = await getSubUnitList(params)
 | 
			
		||||
        this.subUnitOptions = res.data.map(item => ({
 | 
			
		||||
          label: item.subUnitName,
 | 
			
		||||
          value: item.subUnitName
 | 
			
		||||
        }))
 | 
			
		||||
      } catch (e) {
 | 
			
		||||
        console.error('获取工程下拉失败:', e)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    getDeviceType() {
 | 
			
		||||
      getDeviceType({ level: 3, skipPermission: 1 }).then(response => {
 | 
			
		||||
        let matNameRes = response.data
 | 
			
		||||
        this.materialNameList = matNameRes.map((item) => {
 | 
			
		||||
          return {
 | 
			
		||||
            label: item.typeName,
 | 
			
		||||
            value: item.typeId
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
      getDeviceType({ level: 4, skipPermission: 1 }).then(response => {
 | 
			
		||||
        let matModelRes = response.data
 | 
			
		||||
        this.materialModelList = matModelRes.map((item) => {
 | 
			
		||||
          return {
 | 
			
		||||
            label: item.typeName,
 | 
			
		||||
            value: item.typeId
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    // change设备类型
 | 
			
		||||
    handleMaModel(e) {
 | 
			
		||||
      this.queryParams.typeModelName=null
 | 
			
		||||
      this.materialModelList = []
 | 
			
		||||
      let typeId = null
 | 
			
		||||
      if (!e) {
 | 
			
		||||
        typeId = null
 | 
			
		||||
      } else {
 | 
			
		||||
        typeId = this.materialNameList.find(item => item.label == e).value
 | 
			
		||||
      }
 | 
			
		||||
      console.log('🚀 ~ handleMaModel ~ typeId:', typeId)
 | 
			
		||||
      getDeviceType({ level: 4, skipPermission: 1, typeId }).then(response => {
 | 
			
		||||
        let matModelRes = response.data
 | 
			
		||||
        this.materialModelList = matModelRes.map((item) => {
 | 
			
		||||
          return {
 | 
			
		||||
            label: item.typeName,
 | 
			
		||||
            value: item.typeId
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    // 获取列表
 | 
			
		||||
    async getList() {
 | 
			
		||||
      this.loading = true
 | 
			
		||||
| 
						 | 
				
			
			@ -287,6 +535,7 @@ export default {
 | 
			
		|||
    resetQuery() {
 | 
			
		||||
      this.resetForm('queryForm')
 | 
			
		||||
      this.handleQuery()
 | 
			
		||||
      this.handleMaModel()
 | 
			
		||||
    },
 | 
			
		||||
    /** 导出按钮操作 */
 | 
			
		||||
    handleExport() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue