| <template> | 
|   <!-- <TableLayout> --> | 
|   <keep-alive><TableLayout v-permissions="['ext:plansext:query']"> | 
|     <!-- 搜索表单 --> | 
|     <el-form slot="search-form" ref="searchForm" :model="searchForm" label-suffix=":" label-width="90px" inline> | 
|       <el-form-item label="搜索信息" prop="mixParam"> | 
|         <el-input v-model="searchForm.mixParam" placeholder="请输入物料名称/编码/工序名称" @keypress.enter.native="search"></el-input> | 
|       </el-form-item> | 
|       <el-form-item label="成品计划" prop="workPlanCode"> | 
|         <el-input v-model="searchForm.workPlanCode" placeholder="请输入成品计划编码" @keypress.enter.native="search"></el-input> | 
|       </el-form-item> | 
|       <el-form-item label="计划状态" prop="status"> | 
|         <el-select v-model="searchForm.status" placeholder="全部"> | 
|           <el-option | 
|             v-for="item in status" | 
|             :key="item.id" | 
|             :label="item.name" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <el-form-item label="计划类型" prop="type"> | 
|         <el-select v-model="searchForm.type" placeholder="全部"> | 
|           <el-option | 
|             v-for="item in type" | 
|             :key="item.id" | 
|             :label="item.name" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <el-form-item label="工厂" prop="factoryId"> | 
|         <el-select v-model="searchForm.factoryId" placeholder="请选择" clearable filterable @change="selectFactroy"> | 
|           <el-option | 
|             v-for="item in factories" | 
|             :key="item.id" | 
|             :label="item.name" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <el-form-item label="工序" prop="procedureIdList"> | 
|         <el-select v-model="searchForm.procedureIdList" multiple :disabled="!searchForm.factoryId" clearable filterable placeholder="请选择"> | 
|           <el-option | 
|             v-for="item in productes" | 
|             :key="item.id" | 
|             :label="item.name" | 
|             :value="item.id"> | 
|           </el-option> | 
|         </el-select> | 
|       </el-form-item> | 
|       <el-form-item label="批次号" prop="batch"> | 
|         <el-input v-model="searchForm.batch" placeholder="请输入" @keypress.enter.native="search"></el-input> | 
|       </el-form-item> | 
|       <el-form-item label="计划日期" prop="planDate"> | 
|         <el-date-picker | 
|           value-format="yyyy-MM-dd" | 
|           v-model="time" | 
|           type="daterange" | 
|           range-separator="至" | 
|           start-placeholder="开始日期" | 
|           end-placeholder="结束日期" | 
|           @change="selectDate" | 
|         ></el-date-picker> | 
|       </el-form-item> | 
|       <section> | 
|         <el-button type="primary" @click="search">搜索</el-button> | 
|         <el-button @click="reset">重置</el-button> | 
|       </section> | 
|     </el-form> | 
|     <!-- 表格和分页 --> | 
|     <template v-slot:table-wrap> | 
|       <ul class="toolbar"> | 
|         <!-- <li v-permissions="['ext:plansext:importExcel']"> | 
|           <ImportButton | 
|             text="导入" | 
|             template-name="plans_import_template.xlsx" | 
|             template-path="template/plans_import_template.xlsx" | 
|             action="/ext/plansExt/importBatch" | 
|             @success="search" | 
|           /> | 
|         </li> --> | 
|         <!-- <li v-permissions="['ext:plansext:create']"><el-button type="primary" @click="$refs.operaPlansExtWindow.open('新建生产计划')" >新建</el-button></li> --> | 
|         <!-- <li v-permissions="['ext:plansext:publish']"><el-button type="primary" @click="planRelease" >发布</el-button></li> --> | 
|         <li v-permissions="['ext:plansext:distribute']"><el-button type="primary" @click="plansDistribute">批量分配</el-button></li> | 
|         <li v-permissions="['ext:plansext:exportExcel']"><el-button type="primary" :loading="isWorking.export" @click="exportExcel">导出</el-button></li> | 
|         <!-- <li v-permissions="['ext:plansext:planpink']"><el-button type="primary" @click="$refs.operaWTransferExtWindow.open('计划领料')">计划领料</el-button></li> --> | 
|         <!-- <li v-permissions="['ext:plansext:stockpink']"><el-button type="primary" @click="$refs.operaPlanStaock.open('库存领料')">库存领料</el-button></li> --> | 
|         <!-- <li v-permissions="['ext:plansext:delete']"><el-button type="danger" plain @click="deleteByIdInBatch">批量删除</el-button></li> --> | 
|         <span></span> | 
|       </ul> | 
|       <el-table | 
|         v-loading="isWorking.search" | 
|         :data="tableData.list" | 
|         stripe | 
|         border | 
|         :summary-method="getSummaries" | 
|         show-summary | 
|         @selection-change="handleSelectionChange" | 
|         @row-style="rowStyle" | 
|       > | 
|         <el-table-column type="selection" fixed="left" width="55"></el-table-column> | 
|         <el-table-column prop="id" label="计划序号" fixed="left" min-width="80px"></el-table-column> | 
|         <el-table-column prop="mmodel.name" fixed="left" label="物料名称" show-overflow-tooltip min-width="140px"> | 
|           <template slot-scope="{row}"> | 
|             <el-button type="text" class="materail" @click="showPlan(row.id)"> | 
|               <div class="long-title-style">{{ row.mmodel.name }}</div> | 
|             </el-button> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="mmodel.code" label="物料编码" min-width="160px"> | 
|         </el-table-column> | 
|         <el-table-column prop="planDate" label="计划日期" min-width="100px"></el-table-column> | 
|         <el-table-column prop="fmodel.name" label="工厂" min-width="100px"></el-table-column> | 
|         <el-table-column prop="pmodel.name" label="工序" show-overflow-tooltip min-width="100px"> | 
|           <template slot-scope="{row}"> | 
|             <span class="long-title-style">{{ row.pmodel ? row.pmodel.name : '-' }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="num" label="计划数量" min-width="100px"> | 
|           <template slot-scope="{row}"> | 
|             <span>{{ row.num + (row.umodel ? row.umodel.name : '') }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="batch" label="生产批次号" show-overflow-tooltip min-width="140px"></el-table-column> | 
|         <el-table-column prop="urgent" label="优先级" min-width="60px"></el-table-column> | 
|         <el-table-column label="计划状态" min-width="80px"> | 
|           <template slot-scope="{row}"> | 
|             {{ statusToStr(row.status) }} | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column label="计划类型" min-width="80px"> | 
|           <template slot-scope="{row}"> | 
|             <span :style="typeColor(row.type)">{{ typeToStr(row.type) }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column label="暂停" min-width="60px"> | 
|           <template slot-scope="{row}"> | 
|             {{ row.paused == 0 ? '否' : '是' }} | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="workPlanCode" label="成品计划编码" min-width="140px"></el-table-column> | 
|         <el-table-column prop="distributNoDoneNum" label="已分配未报工数量" min-width="140px"> | 
|           <template slot-scope="{row}"> | 
|             <span>{{row.distributNoDoneNum ? (row.distributNoDoneNum + (row.umodel ? row.umodel.name : '')) : '-' }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="qulifiedNum" label="合格数量" min-width="100px"> | 
|           <template slot-scope="{row}"> | 
|             <span>{{row.qulifiedNum ? (row.qulifiedNum + (row.umodel ? row.umodel.name : '')) : '-' }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="unqulifiedNum" label="不良数量" min-width="100px"> | 
|           <template slot-scope="{row}"> | 
|             <span>{{row.unqulifiedNum ? (row.unqulifiedNum + (row.umodel ? row.umodel.name : '')) : '-' }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="publishDate" label="发布日期" min-width="100px"> | 
|           <template slot-scope="{row}"> | 
|             <span>{{ row.publishDate || '-' }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column prop="userId" label="计划员" min-width="160px"> | 
|           <template slot-scope="{row}"> | 
|            <span class="long-title-style"> {{ row.usermodel.realname + " " + row.usermodel.mobile }}</span> | 
|           </template> | 
|         </el-table-column> | 
|         <el-table-column | 
|           label="操作" | 
|           min-width="100px" | 
|           fixed="right"> | 
|           <template slot-scope="{row}"> | 
|             <!-- 0已生成、1已发布、2已撤回、3已取消、4已分配、5已暂停、6已完工、7已入库、8已关闭 --> | 
|             <el-button v-if="row.status==0&&tempPremission('ext:plansext:publish')" type="text" @click="publishById(row.id)">发布</el-button> | 
|             <!-- <el-button v-if="(row.status==1||row.status==4)" type="text" @click="distrubution(row)">分配</el-button> --> | 
|             <!--  --> | 
|             <el-button v-if="(row.status==1||row.status==4)&&(row.num-row.distributNum>0)&&tempPremission('ext:plansext:distribute')" type="text" @click="distrubution(row)">分配</el-button> | 
|             <el-button v-if="row.status==4&&row.paused==0&&tempPremission('ext:plansext:control')" type="text" @click="planPauseById(row.id)">暂停</el-button> | 
|             <el-button v-if="row.status==4&&row.paused==1&&tempPremission('ext:plansext:control')" type="text" @click="planRegainById(row.id)">恢复</el-button> | 
|             <!-- <el-button v-if="row.status==4||row.status==5&&tempPremission('ext:plansext:control')" type="text" @click="planCloseById(row.id)">关闭</el-button> --> | 
|             <el-button v-if="row.status==0&&tempPremission('ext:plansext:update')" type="text" @click="$refs.operaPlansExtWindow.open('编辑生产计划', row)">编辑</el-button> | 
|             <span v-if="row.status==0||row.status==1&&tempPremission('ext:plansext:delete')" style="margin-left:8px"> | 
|               <!-- <el-button type="text" @click="deleteById(row)">删除</el-button> --> | 
|             </span> | 
|             <!-- <span v-if="row.status==4&&tempPremission('ext:plansext:control')" style="margin-left:8px"> | 
|               <el-button type="text" @click="cancelPlan(row)">取消</el-button> | 
|             </span> --> | 
|             <el-button v-if="row.status==3||row.status==6||row.status==8" type="text">-</el-button> | 
|           </template> | 
|         </el-table-column> | 
|       </el-table> | 
|       <pagination | 
|         @size-change="handleSizeChange" | 
|         @current-change="handlePageChange" | 
|         :pagination="tableData.pagination" | 
|       ></pagination> | 
|     </template> | 
|     <!-- 新建/修改 --> | 
|     <OperaPlansExtWindow ref="operaPlansExtWindow" @success="handlePageChange"/> | 
|     <OperaPlansDetailExtWindow ref="operaPlansDetailExtWindow" @success="handlePageChange"/> | 
|     <OperaPlansExtFromWindow ref="operaPlansExtFromWindow" @success="distrubuted"/> | 
|     <OperaWTransferExtWindow ref="operaWTransferExtWindow" @success="handlePageChange"/> | 
|     <OrderDistrubution ref="orderDistrubution" @success="distrubuted"/> | 
|     <OperaPlanStaock ref="operaPlanStaock" @success="handlePageChange"/> | 
|     <el-dialog | 
|       title="发布" | 
|       :visible.sync="dialogRelease" | 
|       width="30%" | 
|       left | 
|     > | 
|       确定发布选中计划吗? | 
|       <span slot="footer" class="dialog-footer"> | 
|         <el-button @click="dialogRelease = false">取 消</el-button> | 
|         <el-button type="primary" :disabled="isLoading" :icon="isLoading ? 'el-icon-loading' : ''" @click="submit">确 定</el-button> | 
|       </span> | 
|     </el-dialog> | 
|   </TableLayout></keep-alive> | 
| </template> | 
|   | 
| <script> | 
| import BaseTable from '@/components/base/BaseTable' | 
| import TableLayout from '@/layouts/TableLayout' | 
| import Pagination from '@/components/common/Pagination' | 
| import ImportButton from '@/components/common/ImportButton' | 
| import OperaPlansExtWindow from '@/components/ext/OperaPlansExtWindow' | 
| import OperaPlansDetailExtWindow from '@/components/ext/OperaPlansDetailExtWindow' | 
| import OperaPlansExtFromWindow from '@/components/ext/OperaPlansExtFromWindow' | 
| import OperaWTransferExtWindow from '@/components/ext/OperaWTransferExtWindow' | 
| import OrderDistrubution from '@/components/ext/OrderDistrubution' | 
| import OperaPlanStaock from '@/components/ext/OperaPlanStaock' | 
| import { publish, cancelById, pauseById, regainById, closeById, planDetailById } from '@/api/ext/plansExt' | 
| import { getDepartmentListByConditon } from '@/api/ext/departmentExt' | 
| import { productesGroup } from '@/api/ext/proceduresExt' | 
| import { addPrecision } from '@/utils/util' | 
| export default { | 
|   name: 'PlansExt', | 
|   extends: BaseTable, | 
|   components: { | 
|     TableLayout, | 
|     OrderDistrubution, | 
|     Pagination, | 
|     ImportButton, | 
|     OperaPlansExtWindow, | 
|     OperaPlansDetailExtWindow, | 
|     OperaPlansExtFromWindow, | 
|     OperaWTransferExtWindow, | 
|     OperaPlanStaock | 
|   }, | 
|   data () { | 
|     return { | 
|       time: [], | 
|       status: [ | 
|         // 0已生成、1已发布、2已撤回、3已取消、4已分配、5已暂停、6已完工、8已关闭 | 
|         { name: '已生成', id: 0 }, | 
|         { name: '已发布', id: 1 }, | 
|         { name: '已撤回', id: 2 }, | 
|         { name: '已取消', id: 3 }, | 
|         { name: '已分配', id: 4 }, | 
|         { name: '已暂停', id: 5 }, | 
|         { name: '已完工', id: 6 }, | 
|         { name: '已关闭', id: 8 } | 
|       ], | 
|       type: [ | 
|         { name: '正常', id: 0 }, | 
|         { name: '返工返修', id: 2 }, | 
|       ], | 
|       dialogRelease: false, | 
|       dialogwithdraw: false, | 
|       dialogimport: false, | 
|       ruleForms: { | 
|         time: '' | 
|       }, | 
|       isLoading: false, | 
|       factories: [], | 
|       productes: [], | 
|       // 搜索 | 
|       searchForm: { | 
|         procedureIdList: [], | 
|         procedureId: null, | 
|         factoryId: null, | 
|         status: null, | 
|         mixParam: null, | 
|         endDate: null, | 
|         startDate: null, | 
|         batch: null, | 
|         type: null, | 
|         workPlanCode: null | 
|       } | 
|     } | 
|   }, | 
|   provide() { | 
|     return { | 
|       factories: () => this.factories | 
|     } | 
|   }, | 
|   created () { | 
|     this.config({ | 
|       module: '生产计划', | 
|       api: '/ext/plansExt', | 
|       'field.id': 'id', | 
|       'field.main': 'name', | 
|       sorts: [{ direction: 'DESC', property: 'CREATE_TIME' }] | 
|     }) | 
|     this.search() | 
|   }, | 
|   activated() { | 
|     getDepartmentListByConditon({ | 
|       type: 1 | 
|     }).then(res => { | 
|       this.factories = res | 
|     }).catch(err => { | 
|       console.log(err) | 
|     }) | 
|   }, | 
|   methods: { | 
|     selectDate (v) { | 
|       this.searchForm.startDate = v[0] | 
|       this.searchForm.endDate = v[1] | 
|     }, | 
|     selectFactroy (v) { | 
|       this.searchForm.procedureIdList = [] | 
|       productesGroup({ orgId: v }) | 
|         .then(res => { | 
|           this.productes = res | 
|         }) | 
|         .catch(err => { | 
|           console.log(err) | 
|         }) | 
|     }, | 
|     reset () { | 
|       this.$refs.searchForm.resetFields() | 
|       this.searchForm.startDate = null | 
|       this.searchForm.endDate = null | 
|       this.time = [] | 
|       this.search() | 
|     }, | 
|     planRelease () { | 
|       if (this.tableData.selectedRows.length === 0) { | 
|         this.$tip.warning('请至少选择一条数据') | 
|         return | 
|       } | 
|       for (const item of this.tableData.selectedRows) { | 
|         if (item.status !== 0) { | 
|           this.$tip.warning('只有已创建状态可以发布') | 
|           return | 
|         } | 
|       } | 
|       this.dialogRelease = true | 
|     }, | 
|     distrubution (row) { | 
|       this.$refs.orderDistrubution.open('分配工单', row) | 
|     }, | 
|     submit () { | 
|       this.dialogRelease = false | 
|       const query = '?ids=' + this.tableData.selectedRows.map(row => row.id).join(',') | 
|       this.publishAction(query) | 
|     }, | 
|     cancelPlan (row) { | 
|       this.$confirm('确认取消当前的计划?', '确认取消', { | 
|         distinguishCancelAndClose: true, | 
|         confirmButtonText: '确认', | 
|         cancelButtonText: '取消' | 
|       }) | 
|         .then(() => { | 
|           this.isWorking.delete = true | 
|           cancelById({ id: row.id }) | 
|             .then(() => { | 
|               this.handlePageChange() | 
|             }) | 
|             .catch(e => { | 
|               this.$tip.apiFailed(e) | 
|             }) | 
|             .finally(() => { | 
|               this.isWorking.delete = false | 
|             }) | 
|         }) | 
|         .catch(() => {}) | 
|     }, | 
|     publishById (id) { | 
|       this.$confirm('确认发布当前的计划?', '确认发布', { | 
|         distinguishCancelAndClose: true, | 
|         confirmButtonText: '确认', | 
|         cancelButtonText: '放弃' | 
|       }) | 
|         .then(() => { | 
|           this.publishAction('?ids=' + id) | 
|         }) | 
|         .catch(() => {}) | 
|     }, | 
|     publishAction (query) { | 
|       this.isWorking.delete = true | 
|       publish(query) | 
|         .then(() => { | 
|           this.handlePageChange() | 
|         }) | 
|         .catch(e => { | 
|           this.$tip.apiFailed(e) | 
|         }) | 
|         .finally(() => { | 
|           this.isWorking.delete = false | 
|         }) | 
|     }, | 
|     planPauseById (id) { | 
|       this.$confirm('确认暂停当前的计划?', '确认暂停', { | 
|         distinguishCancelAndClose: true, | 
|         confirmButtonText: '确认', | 
|         cancelButtonText: '放弃' | 
|       }) | 
|         .then(() => { | 
|           this.isWorking.delete = true | 
|           pauseById({ id }) | 
|             .then(() => { | 
|               this.$tip.success('暂停成功') | 
|               this.search() | 
|             }) | 
|             .catch(err => { | 
|               this.$tip.error(err) | 
|             }) | 
|         }) | 
|         .catch(() => {}) | 
|     }, | 
|     planRegainById (id) { | 
|       this.$confirm('确认恢复当前的计划?', '确认恢复', { | 
|         distinguishCancelAndClose: true, | 
|         confirmButtonText: '确认', | 
|         cancelButtonText: '放弃' | 
|       }) | 
|         .then(() => { | 
|           this.isWorking.delete = true | 
|           regainById({ id }) | 
|             .then(() => { | 
|               this.$tip.success('恢复成功') | 
|               this.search() | 
|             }) | 
|             .catch(err => { | 
|               this.$tip.error(err) | 
|             }) | 
|         }) | 
|         .catch(() => {}) | 
|     }, | 
|     rowStyle({row, rowIndex}) { | 
|       console.log('1'); | 
|       return { height: 20} | 
|     }, | 
|     planCloseById (id) { | 
|       this.$confirm('确认关闭当前的计划?', '确认关闭', { | 
|         distinguishCancelAndClose: true, | 
|         confirmButtonText: '确认', | 
|         cancelButtonText: '放弃' | 
|       }) | 
|         .then(() => { | 
|           this.isWorking.delete = true | 
|           closeById({ id }) | 
|             .then(() => { | 
|               this.$tip.success('关闭成功') | 
|               this.search() | 
|             }) | 
|             .catch(err => { | 
|               this.$tip.error(err) | 
|             }) | 
|         }) | 
|         .catch(() => {}) | 
|     }, | 
|     plansDistribute () { | 
|       if (this.tableData.selectedRows.length === 0) { | 
|         this.$tip.warning('请至少选择一条数据') | 
|         return | 
|       } | 
|       let procedureId = this.tableData.selectedRows[0].procedureId | 
|       for (const item of this.tableData.selectedRows) { | 
|         if (item.status !== 4 && item.status !== 1) { | 
|           this.$tip.warning('只有已发布或已分配状态可以分配') | 
|           return | 
|         } | 
|         // if (procedureId !== item.procedureId) { | 
|         //   this.$tip.warning('只能对同工序计划批量分配') | 
|         //   return | 
|         // } | 
|       } | 
|       this.$refs.operaPlansExtFromWindow.open('批量分配', this.tableData.selectedRows) | 
|     }, | 
|     statusToStr (satus) { | 
|       for (const item of this.status) { | 
|         if (item.id === satus) { | 
|           return item.name | 
|         } | 
|       } | 
|     }, | 
|     deleteById (row) { | 
|       this.$confirm('是否删除该条生产计划?', '提示', { | 
|         confirmButtonText: '确定', | 
|         cancelButtonText: '取消', | 
|         type: 'warning' | 
|       }).then(() => { | 
|         this.isWorking.delete = true | 
|         this.api.deleteById(row[this.configData['field.id']]) | 
|           .then(() => { | 
|             this.__afterDelete() | 
|           }) | 
|           .catch(e => { | 
|             this.$tip.apiFailed(e) | 
|           }) | 
|           .finally(() => { | 
|             this.isWorking.delete = false | 
|           }) | 
|       }).catch(() => {}) | 
|     }, | 
|     showPlan (id) { | 
|       planDetailById(id) | 
|         .then(res => { | 
|           // console.log(res) | 
|           this.$refs.operaPlansDetailExtWindow.open('详情', res) | 
|         }) | 
|         .catch(err => { | 
|           this.$tip.error(err) | 
|         }) | 
|     }, | 
|     typeToStr (type) { | 
|       for (const item of this.type) { | 
|         if (item.id === type) { | 
|           return item.name | 
|         } | 
|       } | 
|       return '-' | 
|     }, | 
|     typeColor (type) { | 
|       // { name: '正常', id: 0 }, | 
|         // { name: '返工返修', id: 2 }, | 
|         // $nav-stateColor1: #305ED5; | 
|         //     $nav-stateColor2: #03AF76; | 
|         //     $nav-stateColor4: #DE5243; | 
|         //     $nav-stateColor5: #F5A400; | 
|       switch (type) { | 
|         case 0 : return 'color: #03AF76' | 
|         case 2 : return 'color: #F5A400' | 
|         default: return 'color: #111111' | 
|       } | 
|     }, | 
|     // 权限判断 | 
|     tempPremission (permissions) { | 
|       let allPremission = this.$store.state.userInfo.permissions | 
|        | 
|       for (const item of allPremission) { | 
|         if (item === permissions) { | 
|           return true | 
|         } | 
|       } | 
|       return false | 
|     }, | 
|     distrubuted() { | 
|       setTimeout(()=>{ | 
|         this.handlePageChange() | 
|       },500) | 
|     }, | 
|     getSummaries (param) { | 
|       const { columns, data } = param; | 
|       const sums = []; | 
|       columns.forEach((column, index) => { | 
|         if (index === 0) { | 
|           sums[index] = '合计'; | 
|           return; | 
|         } else if (index === 1 || index === 8 || index === 9 || index === 16 || index === 17) { | 
|           sums[index] = '-'; | 
|           return; | 
|         } else if (index === 8 ) { | 
|           sums[index] = '-'; | 
|           return; | 
|         } | 
|         const values = data.map(item => Number(item[column.property])); | 
|         if (!values.every(value => isNaN(value))) { | 
|           sums[index] = 0 | 
|           values.forEach(item => { | 
|             sums[index] = addPrecision(item, sums[index]) | 
|           }) | 
|         } else { | 
|           sums[index] = '-'; | 
|         } | 
|       }); | 
|       return sums | 
|     } | 
|   } | 
| } | 
|   | 
| </script> | 
| <style lang="scss" scoped> | 
| .materail { | 
|   max-width: 120px; | 
| } | 
| .import{ | 
|   float: right; | 
| } | 
| span{ | 
|   clear: both; | 
| } | 
| .btn{ | 
|   a{ | 
|     margin-left: 20px; | 
|   } | 
| } | 
| </style> |