| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768 | <template>  <div class="app-container">    <!-- <h1>集团</h1> -->    <el-tabs v-model="activeName" @tab-click="handleTabClick">      <el-tab-pane label="库存统计" name="first">        <div class="search">          <el-select v-model="tab.table.getdataListParm.parammaps.pastureid" style="float: left;margin-right: 10px;margin-bottom:10px;width: 150px;" filterable placeholder="牧场" class="filter-item" clearable>            <el-option v-for="item in pastureList" :key="item.pastureid" :label="item.pasturename" :value="item.pastureid" />          </el-select>          <el-date-picker v-model="tab.table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="float: left;width: 250px;margin-bottom:10px;" :picker-options="pickerOptions" />          <el-button class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled" @click="handleBefore" />          <el-button class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled" @click="handleNext" />          <el-input v-model="tab.table.getdataListParm.parammaps.feedname" class="filter-item" style="float: left;width: 245px;margin-bottom:10px;" placeholder="饲料名称" />          <el-button class="successBorder" style="float: left;margin-left: 10px;margin-bottom:10px;" @click="handleSearch('first')">查询</el-button>          <el-button class="export" style="float: right;margin-right: 10px;margin-bottom:10px;" @click="handleExport(tab1)">导出</el-button>        </div>        <div class="table">          <el-table            :key="tab.table.tableKey"            v-loading="tab.table.listLoading"            element-loading-text="给我一点时间"            :data="tab.table.list"            border            fit            highlight-current-row            style="width: 100%;"            :row-style="rowStyle"            :cell-style="cellStyle"            class="elTable table-fixed"          >            <el-table-column label="饲料名称" min-width="130px" align="center">              <template slot-scope="scope">                <span>{{ scope.row.feedname }}</span>              </template>            </el-table-column>            <el-table-column label="期初" min-width="130px" align="center">              <el-table-column prop="startsum" align="center" label="期初库存(kg)" min-width="120" />              <el-table-column prop="startprice" align="center" label="期初金额(元)" min-width="120" />            </el-table-column>            <el-table-column label="用量" min-width="110px" align="center">              <el-table-column prop="laidsum" align="center" label="入库重量(kg)" min-width="120" />              <el-table-column prop="usesumXT" align="center" label="系统出库重量(kg)" min-width="120" />              <el-table-column prop="usesumRG" align="center" label="人工用料重量(kg)" min-width="120" />              <el-table-column prop="usesumXH" align="center" label="损耗重量(kg)" min-width="120" />            </el-table-column>            <el-table-column label="期末" min-width="130px" align="center">              <el-table-column prop="stopsum" align="center" label="期末库存(kg)" min-width="120" />              <el-table-column prop="stopprice" align="center" label="期末金额(元)" min-width="120" />            </el-table-column>          </el-table>          <pagination v-show="tab.table.total>=0" :total="tab.table.total" :page.sync="tab.table.getdataListParm.offset" :limit.sync="tab.table.getdataListParm.pagecount" @pagination="getTabList" />        </div>      </el-tab-pane>      <el-tab-pane label="用料分析" name="second">        <div class="search">          <el-select v-model="tab2.table.getdataListParm.parammaps.pastureid" style="margin-right: 10px;margin-bottom:10px;width: 130px;" filterable placeholder="牧场" class="filter-item" clearable>            <el-option v-for="item in pastureList" :key="item.pastureid" :label="item.pasturename" :value="item.pastureid" />          </el-select>          <el-date-picker v-model="tab2.table.getdataListParm.parammaps.inputDatetime" :clearable="false" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" :picker-options="pickerOptions" />          <el-button class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled2" @click="handleBefore2" />          <el-button class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled2" @click="handleNext2" />          <span style="margin-left: 10px;">统计类型:</span>          <el-radio v-model="tab2.radio" label="1" @change="changeRadio2">牲畜类别</el-radio>          <el-radio v-model="tab2.radio" label="2" @change="changeRadio2">栏舍名称</el-radio>          <el-radio v-model="tab2.radio" label="3" @change="changeRadio2">日期</el-radio>          <el-radio v-model="tab2.radio" label="4" @change="changeRadio2">TMR设备编号</el-radio>          <el-radio v-model="tab2.radio" label="5" @change="changeRadio2">班次</el-radio>          <el-radio v-model="tab2.radio" label="6" @change="changeRadio2">车次</el-radio>          <el-input v-if="tab2.isRadio1" v-model="tab2.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 170px;" placeholder="牲畜类别" />          <el-input v-if="tab2.isRadio2" v-model="tab2.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 170px;" placeholder="栏舍名称" />          <el-input v-if="tab2.isRadio3" v-model="tab2.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 170px;" placeholder="日期" />          <el-input v-if="tab2.isRadio4" v-model="tab2.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 170px;" placeholder="TMR设备编号" />          <el-input v-if="tab2.isRadio5" v-model="tab2.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 170px;" placeholder="班次" />          <el-input v-if="tab2.isRadio6" v-model="tab2.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 170px;" placeholder="车次" />          <el-button class="successBorder" @click="handleSearch('second')">查询</el-button>          <el-button class="export" style="float: right;margin-right: 5px;" @click="handleExport('tab2')">导出</el-button>        </div>        <el-table          :key="tab2.table.tableKey"          v-loading="tab2.table.listLoading"          element-loading-text="给我一点时间"          :data="tab2.table.list"          border          fit          highlight-current-row          style="width: 100%;"          :row-style="rowStyle"          :cell-style="cellStyle"          class="elTable table-fixed"        >          <el-table-column v-for="item in tab2.table.tableConfig" align="center" :label="item.label" :prop="item.prop">            <el-table-column v-for="item1 in item.children" v-if="item.children || item.children.length>0" align="center" :label="item1.label" :prop="item1.prop">              <el-table-column v-for="item2 in item1.children" v-if="item1.children || item1.children.length>0" :label="item2.label" :prop="item2.prop" />            </el-table-column>          </el-table-column>        </el-table>        <span v-if="tab2.table.listLoading == false && tab2.table.list.length>0" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab2.table.total }}条</span>        <!-- <div v-if="tab2.table.list.length==0" style="text-align: center;">暂无数据</div> -->      </el-tab-pane>      <el-tab-pane label="价格分析" name="third">        <div class="search">          <el-select v-model="tab3.table.getdataListParm.parammaps.pastureid" style="margin-right: 10px;margin-bottom:10px;width: 150px;" filterable placeholder="牧场" class="filter-item" clearable>            <el-option v-for="item in pastureList" :key="item.pastureid" :label="item.pasturename" :value="item.pastureid" />          </el-select>          <el-date-picker v-model="tab3.table.getdataListParm.parammaps.inputDatetime" class="inputDatetime filter-item" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" style="width: 250px;" :picker-options="pickerOptions" />          <el-button class="el-icon-arrow-left elIconArrowLeft" :disabled="Beforedisabled3" @click="handleBefore3" />          <el-button class="el-icon-arrow-right elIconArrowRight" :disabled="Nextdisabled3" @click="handleNext3" />          <span style="margin-left: 10px;">统计类型:</span>          <el-radio v-model="tab3.radio" label="1" @change="changeRadio3">牲畜类别</el-radio>          <el-radio v-model="tab3.radio" label="2" @change="changeRadio3">栏舍名称</el-radio>          <el-radio v-model="tab3.radio" label="3" @change="changeRadio3">日期</el-radio>          <el-radio v-model="tab3.radio" label="4" @change="changeRadio3">TMR设备编号</el-radio>          <el-input v-if="tab3.isRadio1" v-model="tab3.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 180px;" placeholder="牲畜类别" />          <el-input v-if="tab3.isRadio2" v-model="tab3.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 180px;" placeholder="栏舍名称" />          <el-input v-if="tab3.isRadio3" v-model="tab3.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 180px;" placeholder="日期" />          <el-input v-if="tab3.isRadio4" v-model="tab3.table.getdataListParm.parammaps.fname" class="filter-item filter-item1" style="width: 180px;" placeholder="TMR设备编号" />          <el-button class="successBorder" @click="handleSearch('third')">查询</el-button>          <el-button class="export" style="float: right;margin-right: 5px;" @click="handleExport('tab3')">导出</el-button>        </div>        <el-table          :key="tab3.table.tableKey"          v-loading="tab3.table.listLoading"          element-loading-text="给我一点时间"          :data="tab3.table.list"          border          fit          highlight-current-row          style="width: 100%;"          :row-style="rowStyle"          :cell-style="cellStyle"          class="elTable table-fixed"        >          <el-table-column v-for="item in tab3.table.tableConfig" align="center" :label="item.label" :prop="item.prop">            <el-table-column v-for="item1 in item.children" v-if="item.children || item.children.length>0" align="center" :label="item1.label" :prop="item1.prop">              <el-table-column v-for="item2 in item1.children" v-if="item1.children || item1.children.length>0" :label="item2.label" :prop="item2.prop" />            </el-table-column>          </el-table-column>        </el-table>        <span v-if="tab3.table.listLoading == false && tab3.table.list.length>0" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab3.table.total }}条</span>        <!-- <div v-if="tab3.table.list.length==0" style="text-align: center;">暂无数据</div> -->      </el-tab-pane>    </el-tabs>  </div>  </div></template><script>import { GetDataByName, GetDataByNames, GetReportform } from '@/api/common'import Cookies from 'js-cookie'import { parseTime } from '@/utils/index.js'import Pagination from '@/components/Pagination'export default {  name: 'GroupInventoryManagement',  components: { Pagination },  data() {    return {      Beforedisabled: false,      Nextdisabled: false,      Beforedisabled2: false,      Nextdisabled2: false,      pickerMinDate: '',      pickerOptions: {        onPick: ({ maxDate, minDate }) => {          this.pickerMinDate = minDate.getTime()          if (maxDate) {            this.pickerMinDate = ''          }        },        // 限制不能选择今天之后的日期        disabledDate: (time) => {          if (this.pickerMinDate !== '') {            const one = 31 * 24 * 3600 * 1000            const minTime = this.pickerMinDate - one            let maxTime = this.pickerMinDate + one            if (maxTime > new Date()) {              maxTime = new Date()            }            return time.getTime() < minTime || time.getTime() > maxTime          }          return time.getTime() > Date.now()        }      },      requestParams: [        { name: 'getPastureListJT', offset: 0, pagecount: 0, parammaps: { pastureid: Cookies.get('pastureid'), pasturename: '' }}      ],      pastureList: [], // 牧场      fileComment: [{ 'label': '商务文件评分', 'children': [{ 'label': '1' }, { 'label': '2' }, { 'label': '管理员' }] }],      activeName: 'first',      tab: {        chartDate: [],        table: {          getdataListParm: {            name: 'getfsStaticlist',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              startTime: parseTime(new Date(), '{y}-{m}-{d}'),              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),              inputDatetime: [new Date(), new Date()],              feedname: ''            }          },          tableKey: 1,          list: [],          total: 0,          listLoading: false        }      },      tab2: {        chartDate: [],        table: {          getdataListParm: {            name: 'getMaterialAnalysisSC',            page: 1,            offset: 1,            pagecount: '',            returntype: 'Map',            parammaps: {              pastureid: '',              startTime: parseTime(new Date(), '{y}-{m}-{d}'),              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),              inputDatetime: [new Date(), new Date()],              fname: ''            }          },          tableKey: 1,          list: [],          tableConfig: [],          total: 0,          listLoading: false        },        radio: '1',        isRadio1: true,        isRadio2: false,        isRadio3: false,        isRadio4: false,        isRadio5: false,        isRadio6: false      },      tab3: {        chartDate: [],        table: {          getdataListParm: {            name: 'getPriceAnalysisSC',            page: 1,            offset: 1,            pagecount: 10,            returntype: 'Map',            parammaps: {              pastureid: '',              startTime: parseTime(new Date(), '{y}-{m}-{d}'),              stopTime: parseTime(new Date(), '{y}-{m}-{d}'),              inputDatetime: [new Date(), new Date()],              fname: ''            }          },          tableKey: 1,          list: [],          tableConfig: [],          total: 0,          listLoading: false        },        radio: '1',        isRadio1: true,        isRadio2: false,        isRadio3: false,        isRadio4: false      },      rowStyle: { maxHeight: 30 + 'px', height: 30 + 'px' },      cellStyle: { padding: 0 + 'px' }    }  },  created() {    this.getDownList()    this.getTimeFn()  },  methods: {    getDownList() {      GetDataByNames(this.requestParams).then(response => {        this.pastureList = response.data.getPastureListJT.list        this.tab.table.getdataListParm.parammaps.pastureid = response.data.getPastureListJT.list[0].pastureid        this.getTabList()      })    },    getTimeFn() {      const that = this      const end = new Date()      const start = new Date()      start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)      end.setTime(end.getTime() - 3600 * 1000 * 24 * 1)      that.tab.chartDate[0] = parseTime(start, '{y}-{m}-{d}')      that.tab.chartDate[1] = parseTime(end, '{y}-{m}-{d}')      that.tab.table.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')      that.tab.table.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')      that.tab.table.getdataListParm.parammaps.inputDatetime = [start, end]      that.tab2.chartDate[0] = parseTime(start, '{y}-{m}-{d}')      that.tab2.chartDate[1] = parseTime(end, '{y}-{m}-{d}')      that.tab2.table.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')      that.tab2.table.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')      that.tab2.table.getdataListParm.parammaps.inputDatetime = [start, end]      that.tab3.chartDate[0] = parseTime(start, '{y}-{m}-{d}')      that.tab3.chartDate[1] = parseTime(end, '{y}-{m}-{d}')      that.tab3.table.getdataListParm.parammaps.startTime = parseTime(start, '{y}-{m}-{d}')      that.tab3.table.getdataListParm.parammaps.stopTime = parseTime(end, '{y}-{m}-{d}')      that.tab3.table.getdataListParm.parammaps.inputDatetime = [start, end]    },    handleTabClick() {      if (this.activeName == 'first') {        const start = new Date()        const end = new Date()        start.setTime(start.getTime() - 3600 * 1000 * 24 * 1)        end.setTime(end.getTime() - 3600 * 1000 * 24 * 1)        this.tab.table.getdataListParm.parammaps.inputDatetime = [start, end]        this.getTabList()      } else if (this.activeName == 'second') {        console.log(this.pastureList)        const start2 = new Date()        const end2 = new Date()        start2.setTime(start2.getTime() - 3600 * 1000 * 24 * 1)        end2.setTime(end2.getTime() - 3600 * 1000 * 24 * 1)        this.tab2.table.getdataListParm.parammaps.inputDatetime = [start2, end2]        this.tab2.table.getdataListParm.parammaps.pastureid = this.pastureList[0].pastureid        this.getTab2List()      } else if (this.activeName == 'third') {        const start3 = new Date()        const end3 = new Date()        start3.setTime(start3.getTime() - 3600 * 1000 * 24 * 1)        end3.setTime(end3.getTime() - 3600 * 1000 * 24 * 1)        this.tab3.table.getdataListParm.parammaps.inputDatetime = [start3, end3]        this.tab3.table.getdataListParm.parammaps.pastureid = this.pastureList[0].pastureid        this.getTab3List()      }    },    getTabList() {      this.tab.table.listLoading = true      GetDataByName(this.tab.table.getdataListParm).then(response => {        console.log('库存统计table数据', response.data.list)        if (response.data.list !== null) {          this.tab.table.list = response.data.list          this.tab.table.total = response.data.total        } else {          this.tab.table.list = []        }        setTimeout(() => {          this.tab.table.listLoading = false        }, 100)      })    },    handleSearch(item) {      if (item == 'first') {        if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {          this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')          this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')        } else {          this.tab.table.getdataListParm.parammaps.inputDatetime = ''          this.tab.table.getdataListParm.parammaps.startTime = ''          this.tab.table.getdataListParm.parammaps.stopTime = ''        }        this.getTabList()      } else if (item == 'second') {        if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {          this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')          this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')        } else {          this.tab2.table.getdataListParm.parammaps.inputDatetime = ''          this.tab2.table.getdataListParm.parammaps.startTime = ''          this.tab2.table.getdataListParm.parammaps.stopTime = ''        }        this.getTab2List()      } else if (item == 'third') {        if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {          this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')          this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')        } else {          this.tab3.table.getdataListParm.parammaps.inputDatetime = ''          this.tab3.table.getdataListParm.parammaps.startTime = ''          this.tab3.table.getdataListParm.parammaps.stopTime = ''        }        this.getTab3List()      }    },    handleExport(item) {      if (item == 'tab1') {        console.log('库存统计导出')      } else if (item == 'tab2') {        console.log('用料分析导出数据', this.tab2.table.list)        console.log('用料分析导出表头', this.tab2.table.tableConfig)        var exportData = []        var exportTitle1 = [] // 一级标题        var exportTitle2 = [] // 二级标题        for (let i = 0; i < this.tab2.table.tableConfig.length; i++) {          exportTitle1.push(this.tab2.table.tableConfig[i].label)          for (let j = 0; j < this.tab2.table.tableConfig[i].children.length; j++) {            exportTitle2.push(this.tab2.table.tableConfig[i].children[j].label)          }        }        console.log('一级标题exportTitle1', exportTitle1)        console.log('二级标题exportTitle2', exportTitle2)        var headerArr = []// 处理一级标题        for (let i = 0; i < exportTitle1.length; i++) {          if (i > 0) {            headerArr.push(exportTitle1[i], '', '', '')          } else {            headerArr.push(exportTitle1[i])          }        }        console.log('一级表头处理后', headerArr)        var valueArr = [] // 对应字段        for (let i = 0; i < exportTitle2.length; i++) {          if (i == 0) {            valueArr.push('A')          } else {            valueArr.push('a' + [i - 1])          }        }        console.log('对应字段valueArr', valueArr)        if (headerArr.length > 0) {            import('@/vendor/Export3Excel').then((excel) => {              const multiHeader = [                headerArr              ]              const multiHeader2 = []              const tHeader = exportTitle2              const filterVal = valueArr// 表头所对应的字段,这里未填写              const data = this.tab2.table.list.map(v => filterVal.map(j => v[j]))              // const data = [];              // 进行所有表头的单元格合并              // const merges = ['A1:A1', 'B1:E1','F1:J1' ];              const merges = ['A1:A1']              excel.export_json_to_excel({ multiHeader, multiHeader2, header: tHeader, data, filename: '用料分析', merges })            })        }      } else if (item == 'tab3') {        console.log('价格分析导出')        console.log('价格分析导出数据', this.tab3.table.list)        console.log('价格分析导出表头', this.tab3.table.tableConfig)        var exportData = []        var exportTitle1 = [] // 一级标题        var exportTitle2 = [] // 二级标题        for (let i = 0; i < this.tab3.table.tableConfig.length; i++) {          exportTitle1.push(this.tab3.table.tableConfig[i].label)          for (let j = 0; j < this.tab3.table.tableConfig[i].children.length; j++) {            exportTitle2.push(this.tab3.table.tableConfig[i].children[j].label)          }        }        console.log('一级标题exportTitle1', exportTitle1)        console.log('二级标题exportTitle2', exportTitle2)        var headerArr = []// 处理一级标题        for (let i = 0; i < exportTitle1.length; i++) {          if (i > 0) {            headerArr.push(exportTitle1[i], '')          } else {            headerArr.push(exportTitle1[i])          }        }        console.log('一级表头处理后', headerArr)        var valueArr = [] // 对应字段        for (let i = 0; i < exportTitle2.length; i++) {          if (i == 0) {            valueArr.push('A')          } else {            valueArr.push('a' + [i - 1])          }        }        console.log('对应字段valueArr', valueArr)        if (headerArr.length > 0) {            import('@/vendor/Export3Excel').then((excel) => {              const multiHeader = [                headerArr              ]              const multiHeader2 = []              const tHeader = exportTitle2              const filterVal = valueArr// 表头所对应的字段,这里未填写              const data = this.tab3.table.list.map(v => filterVal.map(j => v[j]))              // const data = [];              // 进行所有表头的单元格合并              // const merges = ['A1:A1', 'B1:E1','F1:J1' ];              const merges = ['A1:A1']              excel.export_json_to_excel({ multiHeader, multiHeader2, header: tHeader, data, filename: '价格分析', merges })            })        }      }    },    format(jsonData) { // 数据处理      const dataList = []      for (let i = 0; i < jsonData.length; i++) {        const list = []        list.push(jsonData[i].index)        list.push(jsonData[i].Personel)        list.push(jsonData[i].address)        for (let j = 0; j < jsonData[0]['time'].length; j++) {          list.push(jsonData[i]['time'][j].morning)          list.push(jsonData[i]['time'][j].afternoon)        }        dataList.push(list)      }      return dataList    },    // 用料分析    getTab2List() {      this.tab2.table.listLoading = true      GetReportform(this.tab2.table.getdataListParm).then(response => {        if (response.data !== null && response.data.data !== null && response.data.data1 !== null) {          console.log('库存统计-用料分析', response.data.list)          this.tab2.table.list = response.data.list.data1          this.tab2.table.tableConfig = response.data.list.data2          this.tab2.table.total = response.data.total        } else {          this.tab2.table.list = []        }        setTimeout(() => {          this.tab2.table.listLoading = false        }, 100)      })    },    changeRadio2() {      console.log(this.tab2.radio)      if (this.tab2.radio == '1') {        this.tab2.isRadio1 = true,        this.tab2.isRadio2 = false,        this.tab2.isRadio3 = false,        this.tab2.isRadio4 = false,        this.tab2.isRadio5 = false,        this.tab2.isRadio6 = false,        this.tab2.table.getdataListParm.name = 'getMaterialAnalysisSC'        this.tab2.table.getdataListParm.offset = 1        this.getTab2List()      } else if (this.tab2.radio == '2') {        this.tab2.isRadio1 = false,        this.tab2.isRadio2 = true,        this.tab2.isRadio3 = false,        this.tab2.isRadio4 = false,        this.tab2.isRadio5 = false,        this.tab2.isRadio6 = false,        this.tab2.table.getdataListParm.name = 'getMaterialAnalysisLS'        this.tab2.table.getdataListParm.offset = 1        this.getTab2List()      } else if (this.tab2.radio == '3') {        this.tab2.isRadio1 = false,        this.tab2.isRadio2 = false,        this.tab2.isRadio3 = true,        this.tab2.isRadio4 = false,        this.tab2.isRadio5 = false,        this.tab2.isRadio6 = false,        this.tab2.table.getdataListParm.name = 'getMaterialAnalysisRQ'        this.tab2.table.getdataListParm.offset = 1        this.getTab2List()      } else if (this.tab2.radio == '4') {        this.tab2.isRadio1 = false,        this.tab2.isRadio2 = false,        this.tab2.isRadio3 = false,        this.tab2.isRadio4 = true,        this.tab2.isRadio5 = false,        this.tab2.isRadio6 = false,        this.tab2.table.getdataListParm.name = 'getMaterialAnalysisTMR'        this.tab2.table.getdataListParm.offset = 1        this.getTab2List()      } else if (this.tab2.radio == '5') {        this.tab2.isRadio1 = false,        this.tab2.isRadio2 = false,        this.tab2.isRadio3 = false,        this.tab2.isRadio4 = false,        this.tab2.isRadio5 = true,        this.tab2.isRadio6 = false,        this.tab2.table.getdataListParm.name = 'getMaterialAnalysisBC'        this.tab2.table.getdataListParm.offset = 1        this.getTab2List()      } else if (this.tab2.radio == '6') {        this.tab2.isRadio1 = false,        this.tab2.isRadio2 = false,        this.tab2.isRadio3 = false,        this.tab2.isRadio4 = false,        this.tab2.isRadio5 = false,        this.tab2.isRadio6 = true,        this.tab2.table.getdataListParm.name = 'getMaterialAnalysisCC'        this.tab2.table.getdataListParm.offset = 1        this.getTab2List()      }    },    // 价格分析    getTab3List() {      this.tab3.table.listLoading = true      GetReportform(this.tab3.table.getdataListParm).then(response => {        if (response.data !== null && response.data.list.data1 !== null && response.data.list.data2 !== null) {          console.log('库存统计-价格分析', response.data.list)          this.tab3.table.list = response.data.list.data1          this.tab3.table.tableConfig = response.data.list.data2          this.tab3.table.total = response.data.total        } else {          this.tab3.table.list = []        }        setTimeout(() => {          this.tab3.table.listLoading = false        }, 100)      })    },    changeRadio3() {      console.log(this.tab3.radio)      if (this.tab3.radio == '1') {        this.tab3.isRadio1 = true,        this.tab3.isRadio2 = false,        this.tab3.isRadio3 = false,        this.tab3.isRadio4 = false,        this.tab3.table.getdataListParm.name = 'getPriceAnalysisSC'        this.tab3.table.getdataListParm.offset = 1        this.getTab3List()      } else if (this.tab3.radio == '2') {        this.tab3.isRadio1 = false,        this.tab3.isRadio2 = true,        this.tab3.isRadio3 = false,        this.tab3.isRadio4 = false,        this.tab3.table.getdataListParm.name = 'getPriceAnalysisLS'        this.tab3.table.getdataListParm.offset = 1        this.getTab3List()      } else if (this.tab3.radio == '3') {        this.tab3.isRadio1 = false,        this.tab3.isRadio2 = false,        this.tab3.isRadio3 = true,        this.tab3.isRadio4 = false,        this.tab3.table.getdataListParm.name = 'getPriceAnalysisRQ'        this.tab3.table.getdataListParm.offset = 1        this.getTab3List()      } else if (this.tab3.radio == '4') {        this.tab3.isRadio1 = false,        this.tab3.isRadio2 = false,        this.tab3.isRadio3 = false,        this.tab3.isRadio4 = true,        this.tab3.table.getdataListParm.name = 'getPriceAnalysisTMR'        this.tab3.table.getdataListParm.offset = 1        this.getTab3List()      }    },    handleBefore() {      if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {        var start = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))        var stop = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))        if (stop > Date.now() - 8.64e7) {          this.Nextdisabled = true          this.Beforedisabled = false        } else {          this.Nextdisabled = false          this.Beforedisabled = false        }        this.tab.table.getdataListParm.parammaps.inputDatetime.length = 0        this.tab.table.getdataListParm.parammaps.inputDatetime.push(start, stop)        this.$forceUpdate()      }      this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')      this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')      this.getTabList()    },    handleNext() {      if (this.tab.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab.table.getdataListParm.parammaps.inputDatetime !== null) {        var start2 = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))        var stop2 = new Date(this.tab.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))        if (stop2 > Date.now() - 8.64e7) {          this.Nextdisabled = true          this.Beforedisabled = false        } else {          this.Nextdisabled = false          this.Beforedisabled = false        }        this.tab.table.getdataListParm.parammaps.inputDatetime.length = 0        this.tab.table.getdataListParm.parammaps.inputDatetime.push(start2, stop2)        this.$forceUpdate()      }      this.tab.table.getdataListParm.parammaps.startTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')      this.tab.table.getdataListParm.parammaps.stopTime = parseTime(this.tab.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')      this.getTabList()    },    handleBefore2() {      if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {        var start3 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))        var stop3 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))        if (stop3 > Date.now() - 8.64e7) {          this.Nextdisabled2 = true          this.Beforedisabled2 = false        } else {          this.Nextdisabled2 = false          this.Beforedisabled2 = false        }        this.tab2.table.getdataListParm.parammaps.inputDatetime.length = 0        this.tab2.table.getdataListParm.parammaps.inputDatetime.push(start3, stop3)        this.$forceUpdate()      }      this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')      this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')      this.getTab2List()    },    handleNext2() {      if (this.tab2.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {        var start4 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))        var stop4 = new Date(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab2.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))        if (stop4 > Date.now() - 8.64e7) {          this.Nextdisabled2 = true          this.Beforedisabled2 = false        } else {          this.Nextdisabled2 = false          this.Beforedisabled2 = false        }        this.tab2.table.getdataListParm.parammaps.inputDatetime.length = 0        this.tab2.table.getdataListParm.parammaps.inputDatetime.push(start4, stop4)        this.$forceUpdate()      }      this.tab2.table.getdataListParm.parammaps.startTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')      this.tab2.table.getdataListParm.parammaps.stopTime = parseTime(this.tab2.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')      this.getTab2List()    },    handleBefore3() {      if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab3.table.getdataListParm.parammaps.inputDatetime !== null) {        var start5 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].getDate() - 1))        var stop5 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].getDate() - 1))        if (stop5 > Date.now() - 8.64e7) {          this.Nextdisabled3 = true          this.Beforedisabled3 = false        } else {          this.Nextdisabled3 = false          this.Beforedisabled3 = false        }        this.tab3.table.getdataListParm.parammaps.inputDatetime.length = 0        this.tab3.table.getdataListParm.parammaps.inputDatetime.push(start5, stop5)        this.$forceUpdate()      }      this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')      this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')      this.getTab3List()    },    handleNext3() {      if (this.tab3.table.getdataListParm.parammaps.inputDatetime !== '' && this.tab2.table.getdataListParm.parammaps.inputDatetime !== null) {        var start6 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[0].getDate() + 1))        var stop6 = new Date(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].setDate(this.tab3.table.getdataListParm.parammaps.inputDatetime[1].getDate() + 1))        if (stop6 > Date.now() - 8.64e7) {          this.Nextdisabled3 = true          this.Beforedisabled3 = false        } else {          this.Nextdisabled3 = false          this.Beforedisabled3 = false        }        this.tab3.table.getdataListParm.parammaps.inputDatetime.length = 0        this.tab3.table.getdataListParm.parammaps.inputDatetime.push(start6, stop6)        this.$forceUpdate()      }      this.tab3.table.getdataListParm.parammaps.startTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[0], '{y}-{m}-{d}')      this.tab3.table.getdataListParm.parammaps.stopTime = parseTime(this.tab3.table.getdataListParm.parammaps.inputDatetime[1], '{y}-{m}-{d}')      this.getTab3List()    }  }}</script><style lang="scss" scoped>  .search{    margin-bottom:10px;    .el-radio{margin-right: 10px;}    .filter-item1{margin-top: 10px;}  }</style>
 |