Fixiaobai
2023-08-17 db639ba99b5856503053cf74efe73b6c5604d9d6
	modified:   .env.development
modified: .env.production
modified: .env.staging
modified: src/components/Breadcrumb/index.vue
modified: src/layout/components/AppMain.vue
modified: src/layout/index.vue
modified: src/views/laboratory/ledger/index.vue
modified: src/views/laboratory/measure/index.vue
已修改8个文件
453 ■■■■■ 文件已修改
.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.production 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.staging 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Breadcrumb/index.vue 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/AppMain.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/laboratory/ledger/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/laboratory/measure/index.vue 402 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -2,4 +2,4 @@
ENV = 'development'
# base api
VUE_APP_BASE_API = 'http://192.168.110.87:1234/'
VUE_APP_BASE_API = 'http://localhost:1234/'
.env.production
@@ -3,5 +3,5 @@
# base api
# VUE_APP_BASE_API = '/prod-api'
VUE_APP_BASE_API = 'http://192.168.110.87:1234/'
VUE_APP_BASE_API = 'http://localhost:1234/'
.env.staging
@@ -5,6 +5,6 @@
# base api
# VUE_APP_BASE_API = '/stage-api'
VUE_APP_BASE_API = 'http://192.168.110.87:1234/'
VUE_APP_BASE_API = 'http://localhost:1234/'
src/components/Breadcrumb/index.vue
@@ -1,4 +1,6 @@
<template>
<div style="display: flex;justify-content: space-around;">
  <el-col :span="12" style="background-color: #fff;">
  <el-breadcrumb class="app-breadcrumb" separator="/">
    <transition-group name="breadcrumb">
      <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
@@ -7,6 +9,12 @@
      </el-breadcrumb-item>
    </transition-group>
  </el-breadcrumb>
  </el-col>
  <el-col :span="12" style="background-color: #fff;display: flex;justify-content: end; align-items: center;">
    <el-button v-if="backPlan" type="primary" icon="el-icon-refresh-left" size="mini" plain @click="backPlanUp">返回</el-button>
  <el-col :span="1"></el-col>
  </el-col>
</div>
</template>
<script>
@@ -15,7 +23,8 @@
export default {
  data() {
    return {
      levelList: null
      levelList: null,
      backPlan: false
    }
  },
  watch: {
@@ -27,6 +36,13 @@
    this.getBreadcrumb()
  },
  methods: {
    backPlanUp(){
        this.$parent.combackPlan()
        this.backPlan=false
    },
    triggerBtnPlan(){
      this.backPlan?this.backPlan=false:this.backPlan=true
    },
    getBreadcrumb() {
      // only show routes with meta.title
      const matched = this.$route.matched.filter(item => item.meta && item.meta.title)
src/layout/components/AppMain.vue
@@ -1,7 +1,7 @@
<template>
  <section class="app-main">
    <transition name="fade-transform" mode="out-in">
      <router-view :key="key" />
      <router-view ref="child" @triggerMainBtnPlan="triggerMainBtnPlan" :key="key" />
    </transition>
  </section>
</template>
@@ -13,6 +13,14 @@
    key() {
      return this.$route.path
    }
  },
  methods: {
    childMethod(){
      this.$refs.child.combackLookPlan()
    },
    triggerMainBtnPlan(){
      this.$parent.triggerCombackBtn()
    }
  }
}
</script>
src/layout/index.vue
@@ -8,8 +8,8 @@
      </div>
      <div class="clearFixed" />
      <!-- 清除定位的影响 -->
      <Breadcrumb class="breadcrumb-container" />
      <app-main />
      <Breadcrumb class="breadcrumb-container" ref="breadcrumb" />
      <app-main ref="main" @triggerCombackBtn="triggerCombackBtn"/>
    </div>
  </div>
</template>
@@ -50,6 +50,12 @@
  methods: {
    handleClickOutside() {
      this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
    },
    combackPlan(){
        this.$refs.main.childMethod()
    },
    triggerCombackBtn(){
      this.$refs.breadcrumb.triggerBtnPlan()
    }
  }
}
src/views/laboratory/ledger/index.vue
@@ -979,12 +979,15 @@
        fatherName: null,
        sonName: null
      }
      if (_that.addTreeForm.type != null && _that.addTreeForm.type[0] != 0) {
        data.fatherName = _that.addTreeForm.type[0]
        data.fatherName = _that.addTreeFormClassTree.filter(item => {
          return item.value == _that.addTreeForm.type[0]
        })[0].label
        data.sonName = _that.addTreeForm.name
      } else {
        data.fatherName = _that.addTreeForm.name
      }
      }      // return;
      let add = await addClassify(data);
      switch (add.message.split('-$')[0]) {
        case '1':
src/views/laboratory/measure/index.vue
@@ -2,41 +2,30 @@
  <div>
      <div class="content-main">
          <div class="top-bar">
              <el-form ref="form" :inline="true" :model="searchData">
              <el-form-item :label="this.radioValue === 0 ? '仪器设备编号:' : '编号:'" class="sermargin">
                <el-input
                  v-model="searchData.code"
                  class="input-form"
                  placeholder="请输入"
                >
        <el-form :hidden="lookVisible" ref="form" :inline="true" :model="searchData">
          <el-form-item :label="this.radioValue === 0 ? '仪器设备编号:' : '计划单号:'" class="sermargin">
            <el-input v-model="searchData.code" @blur="blurSearch()" class="input-form" placeholder="请输入">
                </el-input>
              </el-form-item>
              <el-form-item :label="this.radioValue === 0 ? '仪器设备名称:' : '设备名称'" class="sermargin">
                <el-input
                  v-model="searchData.name"
                  class="input-form"
                  placeholder="请输入"
                >
          <el-form-item v-if="this.radioValue === 0" :label="this.radioValue === 0 ? '仪器设备名称:' : '设备名称'"
            class="sermargin">
            <el-input v-model="searchData.name" class="input-form" placeholder="请输入">
                </el-input>
              </el-form-item>
              <el-form-item :label="this.radioValue === 0 ? '计量单位:' : '计量单位:'" style="margin-right: 20px;">
                <el-input
                  v-model="searchData.measureunit"
                  class="input-form"
                  placeholder="请输入"
                >
          <el-form-item v-if="this.radioValue === 0" :label="this.radioValue === 0 ? '计量单位:' : '计量单位:'"
            style="margin-right: 20px;">
            <el-input v-model="searchData.measureunit" class="input-form" placeholder="请输入">
                </el-input>
              </el-form-item>
              </el-form>
              <el-form>
        <el-form :hidden="lookVisible">
                <el-form-item v-if="this.radioValue === 0" class="rightBtn">
                  <el-button type="primary" @click="search">查询</el-button>
                  <el-button type="primary" plain @click="reset">重置</el-button>
            <el-button type="primary" plain @click="reset()">重置</el-button>
                </el-form-item>
                <el-form-item v-if="this.radioValue === 1" class="rightBtn">
                  <el-button type="primary" icon="el-icon-plus">新增计划</el-button>
            <el-button type="primary" @click="addPlan()" icon="el-icon-plus">新增计划</el-button>
                </el-form-item>
              </el-form>
              </el-form>
          </div>
          <div class="library-table">
@@ -50,129 +39,58 @@
              </div>
            </div>
            <div class="table-box">
              <el-table
                v-if="this.radioValue === 0"
                :max-height="800"
                :cell-style="{textAlign: 'center'}"
          <el-table v-if="this.radioValue == 0" :max-height="800" :cell-style="{ textAlign: 'center' }"
                :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
                :data="measureLedgerTable"
                style="width: 100%"
              >
                <el-table-column
                  type="selection"
                  min-width="10%"
                />
                <el-table-column
                  prop="hello"
                  label="仪器设备编号"
                  min-width="10%"
                />
                <el-table-column
                  prop="entrust_coding"
                  label="仪器设备名称"
                  min-width="10%"
                />
                <el-table-column
                  prop="entrusted"
                  label="测量范围"
                  min-width="15%"
                />
                <el-table-column
                  prop="samples_number"
                  label="计量周期"
                  min-width="6%"
                />
                <el-table-column
                  prop="inspection_status"
                  label="计量结果"
                  min-width="6%">
            :data="measureLedgerTable" style="width: 100%">
            <el-table-column type="index" min-width="10%" />
            <el-table-column prop="equipmentCode" label="仪器设备编号" min-width="10%" />
            <el-table-column label="计量单位" prop="measurementUnit" min-width="10%"></el-table-column>
            <el-table-column prop="equipmentName" label="仪器设备名称" min-width="10%" />
            <el-table-column prop="measuringRange" label="测量范围" min-width="10%" />
            <el-table-column prop="termValidity" label="计量周期" min-width="10%">
                  <template slot-scope="scope">
                    <div v-if="scope.row.inspection_status === 1">
                      <span style="color: green;">正常</span>
                {{ scope.row.termValidity }}月
              </template>
            </el-table-column>
            <el-table-column prop="result" label="计量结果" min-width="10%">
              <template slot-scope="scope">
                <div v-if="scope.row.result === 1">
                  <span style="color: rgb(78, 210, 16);">正常</span>
                </div>
                <div v-else-if="scope.row.result === 2">
                  <span style="color: rgb(27, 202, 233);">矫正后可用</span>
                    </div>
                    <div v-else>
                      <span style="color: red;">失准</span>
                    </div>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="specifications_models"
                  label="计量日期"
                  min-width="12%"
                />
                <el-table-column
                  prop="dateSurvey"
                  label="计量有效期"
                  min-width="8%"
                />
                <el-table-column
                  prop="completionDeadline"
                  label="负责人"
                  min-width="6%"
                />
                <el-table-column
                  prop="contacts"
                  label="创建日期"
                  min-width="8%"
                />
                <el-table-column
                  prop="inspectionTime"
                  label="创建人"
                  min-width="8%"
                />
                <el-table-column
                  prop="inspectionTime"
                  label="计量编号"
                  min-width="8%"
                />
                <el-table-column
                  label="操作"
                  min-width="15%"
                >
            <el-table-column prop="endDate" label="计量日期" min-width="12%" />
            <el-table-column prop="validit" label="计量有效期" min-width="10%" />
            <el-table-column prop="name" label="负责人" min-width="10%" />
            <el-table-column prop="createTime" label="创建日期" min-width="10%" />
            <el-table-column prop="name" label="创建人" min-width="8%" />
            <el-table-column prop="code" label="计量编号" min-width="8%" />
            <el-table-column label="操作" min-width="15%">
                  <template slot-scope="scope">
                    <el-button type="text" size="small" >查看计量履历</el-button>
                <el-button type="text" @click="lookMeasurement(scope.row.equipmentCode)" size="small">查看计量履历</el-button>
                    <el-button type="text" size="small" >查看附件</el-button>
                  </template>
                </el-table-column>
              </el-table>
              <el-table
                v-if="this.radioValue === 1"
                :max-height="800"
                :cell-style="{textAlign: 'center'}"
          <el-table v-show="this.radioValue == 1" :max-height="800" :cell-style="{ textAlign: 'center' }"
                :header-cell-style="{border:'0px',background:'#f5f7fa',color:'#606266',boxShadow: 'inset 0 1px 0 #ebeef5',textAlign: 'center'}"
                :data="measurePlanTable"
                style="width: 100%"
              >
                <el-table-column
                  type="selection"
                  min-width="10%"
                />
                <el-table-column
                  prop="hello"
                  label="计量单号"
                  min-width="10%"
                />
                <el-table-column
                  prop="entrust_coding"
                  label="设备编号"
                  min-width="10%"
                />
                <el-table-column
                  prop="entrusted"
                  label="设备名称"
                  min-width="15%"
                />
                <el-table-column
                  prop="samples_number"
                  label="计划日期"
                  min-width="6%"
                />
                <el-table-column
                  prop="inspection_status"
                  label="计量状态"
                  min-width="6%">
            :data="measurePlanTable" style="width: 100%">
            <el-table-column type="index" min-width="10%" />
            <el-table-column prop="plannedOrderNumber" label="计划单号" min-width="10%" />
            <el-table-column prop="palanDate" label="计划日期" min-width="10%">
              <template lot-scope="scope">
                <!-- {{ scope.row.palanDate }} -->
              </template>
            </el-table-column>
            <el-table-column prop="status" label="计划状态" min-width="6%">
                  <template slot-scope="scope">
                    <div v-if="scope.row.inspection_status === 1">
                <div v-if="scope.row.status == 1">
                      <span style="color: green;">已完成</span>
                    </div>
                    <div v-else>
@@ -180,49 +98,79 @@
                    </div>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="specifications_models"
                  label="计量负责人"
                  min-width="12%"
                />
                <el-table-column
                  prop="dateSurvey"
                  label="计量单位"
                  min-width="8%"
                />
                <el-table-column
                  prop="completionDeadline"
                  label="创建人"
                  min-width="6%"
                />
                <el-table-column
                  prop="contacts"
                  label="创建日期"
                  min-width="8%"
                />
                <el-table-column
                  label="操作"
                  min-width="15%"
                >
            <el-table-column prop="measurePerson" label="计划负责人" min-width="12%" />
            <el-table-column prop="createPerson" label="创建人" min-width="10%" />
            <el-table-column label="创建时间" prop="createTime" min-width="10%" />
            <el-table-column prop="id" label="操作" min-width="15%">
                  <template slot-scope="scope">
                    <el-button type="text" size="small" >查看计量履历</el-button>
                <el-button type="text" size="small" @click="lookPalan(scope.row.id)">查看计量履历</el-button>
                    <el-button type="text" size="small" >查看附件</el-button>
                  </template>
                </el-table-column>
              </el-table>
              <!-- 分页器 -->
              <div>
                <el-pagination
                  @size-change="handleSizeChange"
                  @current-change="handleCurrentChange"
                  :current-page="currentPage"
                  :page-sizes="[5, 10, 20]"
                  :page-size="pageSize"
                  layout="total, sizes, prev, pager, next, jumper"
                  :total="total">
          <div style="display: flex;justify-content: end;">
            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
              :current-page="currentPage" :page-sizes="[5, 10, 20]" :page-size="pageSize"
              layout="total, sizes, prev, pager, next, jumper" :total="total">
                </el-pagination>
              </div>
            </div>
      </div>
      <el-drawer title="我是标题" :visible.sync="drawer" :direction="direction" :before-close="handleClose">
        <span>我来啦!</span>
      </el-drawer>
      <div id="myMOdel"
        :style="`position: absolute;transition: 1s;top:${mymodelTop}px; left: 9px; width: 100%; height: 60vh; background-color: #fff;z-index: 20;`">
        <el-col :span="10">
          <p style="font-size: 13px;padding-left: 40px;">计划信息</p>
        </el-col>
        <el-col>
          <el-form :model="planInfo" style="padding-left: 150px;color: #9b9898;">
            <el-form-item>
              <el-col :span="8">计划编号:<span style="color: black;">{{ planInfo.plannedOrderNumber }}</span></el-col>
              <el-col :span="8">负责人:<span style="color: black;">{{ planInfo.measurePerson }}</span></el-col>
              <el-col :span="8">计划时间:<span style="color: black;">{{ planInfo.palanDate }}</span></el-col>
            </el-form-item>
            <el-form-item>
              <el-col :span="8">计量单位:<span style="color: black;">{{ planInfo.unit }}</span></el-col>
              <el-col :span="8">创建人:<span style="color: black;">{{ planInfo.createPerson }}</span></el-col>
              <el-col :span="8">创建时间:<span style="color: black;">{{ planInfo.createTime }}</span></el-col>
            </el-form-item>
          </el-form>
        </el-col>
        <el-col>
          <el-col style="font-size: 13px;padding-left: 55px;">
            计量信息
          </el-col>
          <el-col>
            <el-progress style="width: 95%;padding-left: 40px;margin-top: 20px;" :percentage="6" :stroke-width="2"
              :show-text="false"></el-progress>
          </el-col>
        </el-col>
        <el-col  style="width:93%;height: 20vh;margin-top: 30px; margin-left: 40px;">
          <el-table :data="measureData">
            <el-table-column type="inde" label="序号"/>
            <el-table-column type="inde" label="仪器设备编号"/>
            <el-table-column type="inde" label="仪器设备名称"/>
            <el-table-column type="inde" label="测量范围"/>
            <el-table-column type="inde" label="计算周期"/>
            <el-table-column type="inde" label="计算结果"/>
            <el-table-column type="inde" label="计算日期"/>
            <el-table-column type="inde" label="计算有效期"/>
            <el-table-column type="inde" label="负责人"/>
            <el-table-column type="inde" label="创建日期"/>
            <el-table-column type="inde" label="创建人"/>
            <el-table-column type="inde" label="计量单位"/>
            <el-table-column type="inde" label="计量编号"/>
          </el-table>
        </el-col>
        <el-col style="width: 93%;margin-left: 40px; display: flex;justify-content: end;">
          <el-pagination @size-change="handleSizeChangePlan" @current-change="handleCurrentChangePllan"
              :current-page="currentPagePlan" :page-sizes="[5, 10, 20]" :page-size="pageSizePlan"
              layout="total, sizes, prev, pager, next, jumper" :total="totalPlan">
            </el-pagination>
        </el-col>
          </div>
      </div>
  </div>
@@ -250,38 +198,142 @@
      measurePlanTable: [],
      currentPage: 1,
      pageSize: 5,
      total: 20
      total: 0,
      currentPagePlan: 1,
      pageSizePlan: 5,
      totalPlan: 0,
      drawer: false,
      direction: 'rtl',
      lookVisible: false,
      measureData: [],
      planInfo: {
        plannedOrderNumber: 7897897987,
        measurePerson: '某某人',
        palanDate: "2021-09-08 ~ 2024-08-09",
        unit: '某某检测局',
        createPerson: '某某负责人',
        createTime: '2021-09-08'
      },
      mymodelTop: -450//14
    }
  },
  created(){
    this.getStandingPageList()
  },
  methods: {
    async getStandingPageList(){
      const res = await getStandingPageList({pageNo:this.currentPage , pageSize:this.pageSize })
      this.measureLedgerTable = res.data
      console.log(this.measureLedgerTable)
    }
    handleSizeChangePlan(){
    
    },
    handleCurrentChangePllan(){
    },
    addPlan() {
      this.drawer = true
    },
    lookPalan(id) {
      this.lookVisible = true
      this.mymodelTop=10
      this.$parent.triggerMainBtnPlan()
    },
    combackLookPlan(){
      this.lookVisible = false
      this.mymodelTop=-450
    },
    blurSearch() {
      if (this.radioValue === 1) {
        console.log("计划");
      }
    },
    handleClose() {
      this.drawer = false
    },
    handleCurrentChange() {
      this.getStandingPageList()
    },
    handleSizeChange() {
      this.getStandingPageList()
    },
    async getStandingPageList() {
      const res = await getStandingPageList({
        currentPage: this.currentPage, pageSize: this.pageSize,
        code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit
      })
      this.measureLedgerTable = res.data.records
      this.total = res.data.total
      this.measureLedgerTable.forEach(item => {
        let dateStr = ''
        let dateArr = item.createTime
        dateStr = dateArr[0] + "-" + dateArr[1] + "-" + dateArr[2]
        item.createTime = dateStr
        let endArr = item.endDate
        item.endDate = endArr[0] + "-" + endArr[1] + "-" + endArr[2]
        item.validit = this.addMonths(item.endDate, item.termValidity)
      })
    },
    addMonths(yearMonthDay, monthNum) {
      var arr = yearMonthDay.split('-');//2020-08-19或2020-08
      var year = parseInt(arr[0]);
      var month = parseInt(arr[1]);
      month = month + monthNum;
      if (month > 12) {//月份加
        var yearNum = parseInt((month - 1) / 12);
        month = month % 12 == 0 ? 12 : month % 12;
        year += yearNum;
      } else if (month <= 0) {//月份减
        month = Math.abs(month);
        var yearNum = parseInt((month + 12) / 12);
        year -= yearNum;
      }
      month = month < 10 ? "0" + month : month;
      return year + "-" + month + "-" + arr[2];
    },
    search() {
      this.getStandingPageList()
    },
    reset(formName) {
      this.searchData.name = ''
      this.searchData.code = ''
      this.searchData.measureunit = ''
    },
    radioclick() {
      this.radioValue ? this.getPlanPageList() : this.getStandingPageList()
      this.reset()
    },
    async getPlanPageList() {
      const res = await getPlanPageList({
        currentPage: this.currentPage, pageSize: this.pageSize,
        code: this.searchData.code, name: this.searchData.name, unit: this.searchData.measureunit
      })
      res.data.list.forEach(item => {
        item.palanDate = item.beginTime + " ~ " + item.endTime
      })
      this.measurePlanTable = res.data.list
      this.total = res.data.total
    },
    lookMeasurement(code) {
      console.log(code);
    },
  }
}
</script>
<style scoped>
.top-bar{
    margin: -25px -15px;
    background: #fff;
    display: flex;
    justify-content: space-between;
    padding: 5px 24px 0px 24px;
    .sermargin{
      margin-right: 60px;
    }
  }
.rightBtn{
    margin-right: 50px
}
.library-table{
      background-color: #fff;
      flex: 1;
@@ -289,14 +341,17 @@
      margin-top: 40px;
      display: flex;
      flex-direction: column;
      .table-header{
        padding: 20px;
        display: flex;
        justify-content: space-between;
        .el-form-item{
          margin-bottom: 30px !important;
        }
      }
      .table-box{
          padding: 0px 20px;
          margin-top: 0px;
@@ -305,9 +360,11 @@
          /* padding: 20px 20px 10px 20px; */
          display: flex;
          flex-direction: column;
          .el-table {
            flex: 1;
          }
          >div:nth-child(2){
            display: flex;
            justify-content: end;
@@ -315,5 +372,4 @@
          }
      }
    }
</style>