| | |
| | | <template> |
| | | <div class="page"> |
| | | <!-- 头部信息(转库单) --> |
| | | <div class="page_info" v-if="info.wtransfer && route.query.type == 7"> |
| | | <div class="page_info_title">计划出库日期:{{info.wtransfer.outPlandate}}</div> |
| | | <div class="page_info_list"> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源类型:</div> |
| | | <div class="page_info_list_item_nr" v-if="info.wtransfer.originType === 0">采购订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 1">生产工单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 2">销售订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 3">转库单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 4">盘点单</div> |
| | | <div class="page_info_list_item_nr" v-else>-</div> |
| | | </div> |
| | | <!-- <div class="page_info_list_item">--> |
| | | <!-- <div class="page_info_list_item_label">申领工序:</div>--> |
| | | <!-- <div class="page_info_list_item_nr">{{info.wtransfer.procedureName ? info.wtransfer.procedureName : '-'}}</div>--> |
| | | <!-- </div>--> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源单号:</div> |
| | | <div class="page_info_list_item_nr">{{info.wtransfer.originCode ? info.wtransfer.originCode : '-'}}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请人员:</div> |
| | | <div class="page_info_list_item_nr">{{info.wtransfer.outUserName}}/{{info.wtransfer.outDepartName}}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">入库接收人:</div> |
| | | <div class="page_info_list_item_nr">{{info.wtransfer.inUserName}}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请时间:</div> |
| | | <div class="page_info_list_item_nr">{{info.wtransfer.createTime ? info.wtransfer.createTime : '-'}}</div> |
| | | </div> |
| | | </div> |
| | | <div class="page_info_bz" v-if="info.wtransfer.abstracts"> |
| | | <div class="page_info_bz_title">转库备注:</div> |
| | | <div class="page_info_bz_nr">{{info.wtransfer.abstracts}}</div> |
| | | </div> |
| | | <div class="page"> |
| | | <!-- 头部信息(转库单) --> |
| | | <div class="page_info" v-if="info.wtransfer && route.query.type == 7"> |
| | | <div class="page_info_title">计划出库日期:{{ info.wtransfer.outPlandate }}</div> |
| | | <div class="page_info_list"> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源类型:</div> |
| | | <div class="page_info_list_item_nr" v-if="info.wtransfer.originType === 0">采购订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 1">生产工单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 2">销售订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 3">转库单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.wtransfer.originType === 4">盘点单</div> |
| | | <div class="page_info_list_item_nr" v-else>-</div> |
| | | </div> |
| | | <!-- 头部信息(出库单) --> |
| | | <div class="page_info" v-if="info.woutbound && route.query.type == 8"> |
| | | <div class="page_info_title">计划出库日期:{{info.woutbound.planDate}}</div> |
| | | <div class="page_info_list"> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源类型:</div> |
| | | <div class="page_info_list_item_nr" v-if="info.woutbound.originType === 0">采购订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 1">生产工单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 2">销售订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 3">转库单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 4">盘点单</div> |
| | | <div class="page_info_list_item_nr" v-else>-</div> |
| | | </div> |
| | | <!-- <div class="page_info_list_item">--> |
| | | <!-- <div class="page_info_list_item_label">申领工序:</div>--> |
| | | <!-- <div class="page_info_list_item_nr">{{info.woutbound.procedureName ? info.woutbound.procedureName : '-'}}</div>--> |
| | | <!-- </div>--> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源单号:</div> |
| | | <div class="page_info_list_item_nr">{{info.woutbound.originCode ? info.woutbound.originCode : '-'}}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请人员:</div> |
| | | <div class="page_info_list_item_nr">{{info.woutbound.userName}}/{{info.woutbound.userDepartName}}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请时间:</div> |
| | | <div class="page_info_list_item_nr">{{info.woutbound.createTime ? info.woutbound.createTime : '-'}}</div> |
| | | </div> |
| | | </div> |
| | | <div class="page_info_bz" v-if="info.woutbound.abstracts"> |
| | | <div class="page_info_bz_title">转库备注:</div> |
| | | <div class="page_info_bz_nr">{{info.woutbound.abstracts}}</div> |
| | | </div> |
| | | <!-- <div class="page_info_list_item">--> |
| | | <!-- <div class="page_info_list_item_label">申领工序:</div>--> |
| | | <!-- <div class="page_info_list_item_nr">{{info.wtransfer.procedureName ? info.wtransfer.procedureName : '-'}}</div>--> |
| | | <!-- </div>--> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源单号:</div> |
| | | <div class="page_info_list_item_nr">{{ info.wtransfer.originCode ? info.wtransfer.originCode : '-' }}</div> |
| | | </div> |
| | | <div class="page_h"></div> |
| | | <!-- 打开选择工装 --> |
| | | <!-- <div class="switch" v-if="type === QRCodeType.ZKD.toString()">--> |
| | | <!-- <button @click="openxz"><img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="">手动选择</button>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="page_h" v-if="type === QRCodeType.ZKD.toString()"></div>--> |
| | | <!-- 待出物料 --> |
| | | <van-collapse v-model="activeNames"> |
| | | <!-- 转库单(多个仓库) --> |
| | | <template v-if="route.query.type == 7"> |
| | | <van-collapse-item :name="String(index + 1 )" v-for="(item, index) in info.wtransferWarehouseList" :key="index"> |
| | | <template #title> |
| | | <div class="page_sfq"><img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{item.warehouseName}}</div> |
| | | </template> |
| | | <div class="page_dck"> |
| | | <div class="page_dck_title"> |
| | | <div class="page_dck_title_x"></div> |
| | | <span>待出库物料</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content" v-for="(items, idx) in item.wtransferDetailList" :key="idx"> |
| | | <div class="page_content_title"> |
| | | <div class="page_content_title_top"> |
| | | <span>{{items.materialName}} | {{items.materialCode}}</span> |
| | | <span>待出 <span>{{items.outPlannum}}</span> {{items.unitName}}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="items.qualityType === 0">合格 / </span> |
| | | <span class="warning" v-else-if="items.qualityType === 1">不良 / </span> |
| | | <span class="error" v-else-if="items.qualityType === 2">报废 / </span> |
| | | <span v-else>- / </span> |
| | | <span>{{items.procedureName ? items.procedureName : '-'}} / </span> |
| | | <span>{{items.batch ? items.batch : '-'}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content_list" v-for="(childer, idxs) in items.wstockExtListVOList" :key="idxs"> |
| | | <div class="page_content_list_item"> |
| | | <div class="page_content_list_item_label">出库货位:</div> |
| | | <div class="page_content_list_item_nr">{{childer.locationName}}</div> |
| | | </div> |
| | | <div class="page_content_list_items"> |
| | | <div class="page_content_list_item_label">数量:</div> |
| | | <div class="page_content_list_item_nr">{{childer.num}}{{childer.unitName}}</div> |
| | | </div> |
| | | <div class="page_content_list_item"> |
| | | <div class="page_content_list_item_label">批次号:</div> |
| | | <div class="page_content_list_item_nr">{{childer.batch ? childer.batch : '-'}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </van-collapse-item> |
| | | </template> |
| | | <!-- 出库单(一个仓库) --> |
| | | <template v-if="route.query.type == 8"> |
| | | <van-collapse-item name="1"> |
| | | <template #title> |
| | | <div class="page_sfq" v-if="info.woutbound"> |
| | | <img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{info.woutbound.warehouseName}} |
| | | </div> |
| | | </template> |
| | | <div class="page_dck"> |
| | | <div class="page_dck_title"> |
| | | <div class="page_dck_title_x"></div> |
| | | <span>待出库物料</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content" v-for="(item, index) in info.woutboundDetailsWait" :key="index"> |
| | | <div class="page_content_title"> |
| | | <!-- <span>{{item.materialName}} | {{item.materialCode}}</span>--> |
| | | <!-- <span>待出 <span>{{item.num}}</span> {{item.unitName}}</span>--> |
| | | <div class="page_content_title_top"> |
| | | <span>{{item.materialName}} | {{item.materialCode}}</span> |
| | | <span>待出 <span>{{item.num}}</span> {{item.unitName}}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="item.qualityType === 0">合格 / </span> |
| | | <span class="warning" v-else-if="item.qualityType === 1">不良 / </span> |
| | | <span class="error" v-else-if="item.qualityType === 2">报废 / </span> |
| | | <span v-else>- / </span> |
| | | <span>{{item.procedureName ? item.procedureName : '-'}} / </span> |
| | | <span>{{item.batch ? item.batch : '-'}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" :key="ind"> |
| | | <div class="page_content_list_item"> |
| | | <div class="page_content_list_item_label">批次号:</div> |
| | | <div class="page_content_list_item_nr">{{items.batch ? items.batch : '-'}}</div> |
| | | </div> |
| | | <div class="page_content_list_items"> |
| | | <div class="page_content_list_item_label">数量:</div> |
| | | <div class="page_content_list_item_nr">{{items.num}}{{items.umodel.name}}</div> |
| | | </div> |
| | | <div class="page_content_list_item" v-if="items.lmodel"> |
| | | <div class="page_content_list_item_label">出库货位:</div> |
| | | <div class="page_content_list_item_nr">{{items.lmodel.unionName}}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </van-collapse-item> |
| | | </template> |
| | | </van-collapse> |
| | | <div class="page_h"></div> |
| | | <!-- 已选物料 --> |
| | | <div class="page_yxwl"> |
| | | <!-- 转库单(多个仓库) --> |
| | | <!-- <template v-if="route.query.type == 7"> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请人员:</div> |
| | | <div class="page_info_list_item_nr">{{ info.wtransfer.outUserName }}/{{ info.wtransfer.outDepartName }}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">入库接收人:</div> |
| | | <div class="page_info_list_item_nr">{{ info.wtransfer.inUserName }}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请时间:</div> |
| | | <div class="page_info_list_item_nr">{{ info.wtransfer.createTime ? info.wtransfer.createTime : '-' }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="page_info_bz" v-if="info.wtransfer.abstracts"> |
| | | <div class="page_info_bz_title">转库备注:</div> |
| | | <div class="page_info_bz_nr">{{ info.wtransfer.abstracts }}</div> |
| | | </div> |
| | | </div> |
| | | <!-- 头部信息(出库单) --> |
| | | <div class="page_info" v-if="info.woutbound && route.query.type == 8"> |
| | | <div class="page_info_title">计划出库日期:{{ info.woutbound.planDate }}</div> |
| | | <div class="page_info_list"> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源类型:</div> |
| | | <div class="page_info_list_item_nr" v-if="info.woutbound.originType === 0">采购订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 1">生产工单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 2">销售订单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 3">转库单</div> |
| | | <div class="page_info_list_item_nr" v-else-if="info.woutbound.originType === 4">盘点单</div> |
| | | <div class="page_info_list_item_nr" v-else>-</div> |
| | | </div> |
| | | <!-- <div class="page_info_list_item">--> |
| | | <!-- <div class="page_info_list_item_label">申领工序:</div>--> |
| | | <!-- <div class="page_info_list_item_nr">{{info.woutbound.procedureName ? info.woutbound.procedureName : '-'}}</div>--> |
| | | <!-- </div>--> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">来源单号:</div> |
| | | <div class="page_info_list_item_nr">{{ info.woutbound.originCode ? info.woutbound.originCode : '-' }}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请人员:</div> |
| | | <div class="page_info_list_item_nr">{{ info.woutbound.userName }}/{{ info.woutbound.userDepartName }}</div> |
| | | </div> |
| | | <div class="page_info_list_item"> |
| | | <div class="page_info_list_item_label">申请时间:</div> |
| | | <div class="page_info_list_item_nr">{{ info.woutbound.createTime ? info.woutbound.createTime : '-' }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="page_info_bz" v-if="info.woutbound.abstracts"> |
| | | <div class="page_info_bz_title">转库备注:</div> |
| | | <div class="page_info_bz_nr">{{ info.woutbound.abstracts }}</div> |
| | | </div> |
| | | </div> |
| | | <div class="page_h"></div> |
| | | <!-- 打开选择工装 --> |
| | | <!-- <div class="switch" v-if="type === QRCodeType.ZKD.toString()">--> |
| | | <!-- <button @click="openxz"><img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt="">手动选择</button>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="page_h" v-if="type === QRCodeType.ZKD.toString()"></div>--> |
| | | <!-- 待出物料 --> |
| | | <van-collapse v-model="activeNames"> |
| | | <!-- 转库单(多个仓库) --> |
| | | <template v-if="route.query.type == 7"> |
| | | <van-collapse-item :name="String(index + 1)" v-for="(item, index) in info.wtransferWarehouseList" :key="index"> |
| | | <template #title> |
| | | <div class="page_sfq"><img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{ item.warehouseName }}</div> |
| | | </template> |
| | | <div class="page_dck"> |
| | | <div class="page_dck_title"> |
| | | <div class="page_dck_title_x"></div> |
| | | <span>待出库物料</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content" v-for="(items, idx) in item.wtransferDetailList" :key="idx"> |
| | | <div class="page_content_title"> |
| | | <div class="page_content_title_top"> |
| | | <span>{{ items.materialName }} | {{ items.materialCode }}</span> |
| | | <span>待出 <span>{{ items.outPlannum }}</span> {{ items.unitName }}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="items.qualityType === 0">合格 / </span> |
| | | <span class="warning" v-else-if="items.qualityType === 1">不良 / </span> |
| | | <span class="error" v-else-if="items.qualityType === 2">报废 / </span> |
| | | <span v-else>- / </span> |
| | | <span>{{ items.procedureName ? items.procedureName : '-' }} / </span> |
| | | <span>{{ items.batch ? items.batch : '-' }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content_list" v-for="(childer, idxs) in items.wstockExtListVOList" :key="idxs"> |
| | | <div class="page_content_list_item"> |
| | | <div class="page_content_list_item_label">出库货位:</div> |
| | | <div class="page_content_list_item_nr">{{ childer.locationName }}</div> |
| | | </div> |
| | | <div class="page_content_list_items"> |
| | | <div class="page_content_list_item_label">数量:</div> |
| | | <div class="page_content_list_item_nr">{{ childer.num }}{{ childer.unitName }}</div> |
| | | </div> |
| | | <div class="page_content_list_item"> |
| | | <div class="page_content_list_item_label">批次号:</div> |
| | | <div class="page_content_list_item_nr">{{ childer.batch ? childer.batch : '-' }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </van-collapse-item> |
| | | </template> |
| | | <!-- 出库单(一个仓库) --> |
| | | <template v-if="route.query.type == 8"> |
| | | <van-collapse-item name="1"> |
| | | <template #title> |
| | | <div class="page_sfq" v-if="info.woutbound"> |
| | | <img src="@/assets/icon/chuku_ic_cangku@2x.png" alt="" /> {{ info.woutbound.warehouseName }} |
| | | </div> |
| | | </template> |
| | | <div class="page_dck"> |
| | | <div class="page_dck_title"> |
| | | <div class="page_dck_title_x"></div> |
| | | <span>待出库物料</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content" v-for="(item, index) in info.woutboundDetailsWait" :key="index"> |
| | | <div class="page_content_title"> |
| | | <!-- <span>{{item.materialName}} | {{item.materialCode}}</span>--> |
| | | <!-- <span>待出 <span>{{item.num}}</span> {{item.unitName}}</span>--> |
| | | <div class="page_content_title_top"> |
| | | <span>{{ item.materialName }} | {{ item.materialCode }}</span> |
| | | <span>待出 <span>{{ item.num }}</span> {{ item.unitName }}</span> |
| | | </div> |
| | | <div class="page_content_title_bottom"> |
| | | <span class="green" v-if="item.qualityType === 0">合格 / </span> |
| | | <span class="warning" v-else-if="item.qualityType === 1">不良 / </span> |
| | | <span class="error" v-else-if="item.qualityType === 2">报废 / </span> |
| | | <span v-else>- / </span> |
| | | <span>{{ item.procedureName ? item.procedureName : '-' }} / </span> |
| | | <span>{{ item.batch ? item.batch : '-' }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="page_content_list" v-for="(items, ind) in item.wstockExtListVOList" :key="ind"> |
| | | <div class="page_content_list_item"> |
| | | <div class="page_content_list_item_label">批次号:</div> |
| | | <div class="page_content_list_item_nr">{{ items.batch ? items.batch : '-' }}</div> |
| | | </div> |
| | | <div class="page_content_list_items"> |
| | | <div class="page_content_list_item_label">数量:</div> |
| | | <div class="page_content_list_item_nr">{{ items.num }}{{ items.umodel.name }}</div> |
| | | </div> |
| | | <div class="page_content_list_item" v-if="items.lmodel"> |
| | | <div class="page_content_list_item_label">出库货位:</div> |
| | | <div class="page_content_list_item_nr">{{ items.lmodel.unionName }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </van-collapse-item> |
| | | </template> |
| | | </van-collapse> |
| | | <div class="page_h"></div> |
| | | <!-- 已选物料 --> |
| | | <div class="page_yxwl"> |
| | | <!-- 转库单(多个仓库) --> |
| | | <!-- <template v-if="route.query.type == 7"> |
| | | <div class="page_yxwl_title"> |
| | | <div class="left"> |
| | | <div class="page_yxwl_title_x"></div> |
| | |
| | | </div> |
| | | <div class="page_yxwl_kong" v-else><span>暂无数据</span></div> |
| | | </template> --> |
| | | <!-- 出库单(一个仓库) --> |
| | | <!-- <template v-if="route.query.type == 8"> --> |
| | | <div class="page_yxwl_title"> |
| | | <!-- <div class="page_yxwl_title_x"></div>--> |
| | | <!-- <span>已选择物料</span>--> |
| | | <div class="left"> |
| | | <div class="page_yxwl_title_x"></div> |
| | | <span>已选择物料</span> |
| | | </div> |
| | | <div class="right" @click="openxz"> |
| | | <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""><span>手动出库</span> |
| | | </div> |
| | | <!-- <div></div> --> |
| | | </div> |
| | | <div class="page_yxwl_list" v-if="outboundList.length > 0"> |
| | | <!-- <template> --> |
| | | <div class="page_yxwl_list_item" v-for="(item, index) in outboundList" :key="index"> |
| | | <div class="page_yxwl_list_item_top"> |
| | | <div class="page_yxwl_list_item_top_left">{{ item.materialName }} | {{ item.materialCode }} </div> |
| | | <!-- <div class="page_yxwl_list_item_top_right"> |
| | | <!-- 出库单(一个仓库) --> |
| | | <!-- <template v-if="route.query.type == 8"> --> |
| | | <div class="page_yxwl_title"> |
| | | <!-- <div class="page_yxwl_title_x"></div>--> |
| | | <!-- <span>已选择物料</span>--> |
| | | <div class="left"> |
| | | <div class="page_yxwl_title_x"></div> |
| | | <span>已选择物料</span> |
| | | </div> |
| | | <div class="right" @click="openxz"> |
| | | <img src="@/assets/icon/gongdan_ic_shoudong@2x.png" alt=""><span>手动出库</span> |
| | | </div> |
| | | <!-- <div></div> --> |
| | | </div> |
| | | <div class="page_yxwl_list" v-if="outboundList.length > 0"> |
| | | <!-- <template> --> |
| | | <div class="page_yxwl_list_item" v-for="(item, index) in outboundList" :key="index"> |
| | | <div class="page_yxwl_list_item_top"> |
| | | <div class="page_yxwl_list_item_top_left">{{ item.materialName }} | {{ item.materialCode }} </div> |
| | | <!-- <div class="page_yxwl_list_item_top_right"> |
| | | <span>已选:<span>{{item.outPlannum}}</span> {{item.unitName}}</span> |
| | | </div> --> |
| | | </div> |
| | | <div class="page_yxwl_list_item_sx"> |
| | | <span class="green" v-if="item.qualityType == 0">合格 <span>/</span></span> |
| | | <span class="yellow" v-else-if="item.qualityType == 1">不良 <span>/</span></span> |
| | | <span class="red" v-else-if="item.qualityType == 2">报废 <span>/</span></span> |
| | | <span v-else>- / </span> |
| | | <span> {{item.procedureName ? item.procedureName : '-'}} / </span> |
| | | <span> {{item.batch ? item.batch : '-'}}</span> |
| | | </div> |
| | | <div class="page_yxwl_list_item_num"> |
| | | <div class="item"> |
| | | <div class="label">出库货位:</div> |
| | | <div class="nr"> |
| | | <span>{{ item.locationName }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">数量:</div> |
| | | <div class="nr"> |
| | | <!-- @input="changeNum(item)" --> |
| | | <input type="number" v-model="item.num" placeholder="请输入"> |
| | | <span>{{ item.unitName }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="dele" @click="dele(index)"> |
| | | <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- </template> --> |
| | | </div> |
| | | <div class="page_yxwl_kong" v-else><span>暂无数据</span></div> |
| | | <!-- </template> --> |
| | | </div> |
| | | <div class="page_yxwl_list_item_sx"> |
| | | <span class="green" v-if="item.qualityType == 0">合格 <span>/</span></span> |
| | | <span class="yellow" v-else-if="item.qualityType == 1">不良 <span>/</span></span> |
| | | <span class="red" v-else-if="item.qualityType == 2">报废 <span>/</span></span> |
| | | <span v-else>- / </span> |
| | | <span> {{ item.procedureName ? item.procedureName : '-' }} / </span> |
| | | <span> {{ item.batch ? item.batch : '-' }}</span> |
| | | </div> |
| | | <div class="page_yxwl_list_item_num"> |
| | | <div class="item"> |
| | | <div class="label">出库货位:</div> |
| | | <div class="nr"> |
| | | <span>{{ item.locationName }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="label">数量:</div> |
| | | <div class="nr"> |
| | | <!-- @input="changeNum(item)" --> |
| | | <input type="number" v-model="item.num" placeholder="请输入"> |
| | | <span>{{ item.unitName }}</span> |
| | | </div> |
| | | </div> |
| | | <div class="dele" @click="dele(index)"> |
| | | <img src="@/assets/icon/chuku_ic_delete@2x.png" alt="" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="page_zw"></div> |
| | | <!-- 操作按钮 --> |
| | | <div class="page_footer"> |
| | | <button class="page_footer_qrck" v-preventReClick @click="submit"> |
| | | <span>确认出库</span> |
| | | </button> |
| | | </div> |
| | | <Access :show="show" :transferId="(route.query.id as string)" :warehouseId="warehouseId" @close="closeBox" @value="getValue" /> |
| | | <!-- </template> --> |
| | | </div> |
| | | <div class="page_yxwl_kong" v-else><span>暂无数据</span></div> |
| | | <!-- </template> --> |
| | | </div> |
| | | <div class="page_zw"></div> |
| | | <!-- 操作按钮 --> |
| | | <div class="page_footer"> |
| | | <button class="page_footer_qrck" v-preventReClick @click="submit"> |
| | | <span>确认出库</span> |
| | | </button> |
| | | </div> |
| | | <Access :show="show" :transferId="(route.query.id as string)" :warehouseId="warehouseId" @close="closeBox" |
| | | @value="getValue" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref, onMounted } from 'vue' |
| | | import { useRoute, useRouter } from "vue-router" |
| | | import { Toast } from 'vant' |
| | | import { QRCodeType } from '@/enum' |
| | | import { |
| | | outScanAppliances, |
| | | wTransferForInOut, |
| | | wTransferForInOutUpload, |
| | | wOutBoundForInOut, |
| | | wOutBoundForUpload, |
| | | transferToOutNew |
| | | } from '@/apis/ExWarehouse' |
| | | import { useStore } from 'vuex' |
| | | import { getDB } from '@/apis/agencyAPI' |
| | | import Access from '@/components/common/Access.vue' |
| | | import { ref, onMounted } from 'vue' |
| | | import { useRoute, useRouter } from "vue-router" |
| | | import { Toast } from 'vant' |
| | | import { QRCodeType } from '@/enum' |
| | | import { |
| | | outScanAppliances, |
| | | wTransferForInOut, |
| | | wTransferForInOutUpload, |
| | | wOutBoundForInOut, |
| | | wOutBoundForUpload, |
| | | transferToOutNew |
| | | } from '@/apis/ExWarehouse' |
| | | import { useStore } from 'vuex' |
| | | import { getDB } from '@/apis/agencyAPI' |
| | | import Access from '@/components/common/Access.vue' |
| | | |
| | | const route = useRoute() |
| | | const store = useStore() |
| | | const router = useRouter() |
| | | const route = useRoute() |
| | | const store = useStore() |
| | | const router = useRouter() |
| | | |
| | | let dataItem: any = null // 已扫数据 |
| | | let dataItem: any = null // 已扫数据 |
| | | |
| | | let show = ref<boolean>(false) |
| | | let ids = ref<string>('') // 已选 |
| | | let warehouseId = ref('') // 仓库id |
| | | let outboundList = ref<any[]>([]) // 出库数据 |
| | | // 控制扫码显示隐藏 |
| | | const openCode = ref<boolean>(false) |
| | | let show = ref<boolean>(false) |
| | | let ids = ref<string>('') // 已选 |
| | | let warehouseId = ref('') // 仓库id |
| | | let outboundList = ref<any[]>([]) // 出库数据 |
| | | // 控制扫码显示隐藏 |
| | | const openCode = ref<boolean>(false) |
| | | |
| | | // 出库类型 |
| | | let type: any = route.query.type |
| | | // 出库类型 |
| | | let type: any = route.query.type |
| | | |
| | | const activeNames = ref(['1']); |
| | | const activeNames = ref(['1']); |
| | | |
| | | // 详情数据 |
| | | let info: any = ref({}) |
| | | // 详情数据 |
| | | let info: any = ref({}) |
| | | |
| | | // 打开手动选择工装弹框 |
| | | const openxz = () => { |
| | | let arr: any = [] |
| | | if (info.value.wtransferRedisCodeBeanList.length !== 0) { |
| | | info.value.wtransferRedisCodeBeanList.forEach((element: any) => { |
| | | arr.push(element.appliancesId) |
| | | }) |
| | | ids.value = arr.join(',') |
| | | } else { |
| | | ids.value = '' |
| | | } |
| | | show.value = true |
| | | } |
| | | |
| | | const closeBox = () => { |
| | | show.value = false |
| | | } |
| | | |
| | | const changeNum = (item: any) => { |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((row: any) => { |
| | | if (row.materialId === item.materialId) { |
| | | if (Number(item.num) > Number(row.outPlannum)) { |
| | | item.num = 0 |
| | | Toast.fail({ message: "出库物料数量不能大于待出库物料数量" }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 提交工装 |
| | | const getValue = async (val: any, i: number) => { |
| | | // if (i === 0) { |
| | | show.value = false |
| | | // } |
| | | |
| | | |
| | | for (let i = 0; i < info.value.wtransferWarehouseList[0].wtransferDetailList.length; i++) { |
| | | if (info.value.wtransferWarehouseList[0].wtransferDetailList[i].materialId == val.materialId && |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList[i].procedureId == val.procedureId && |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList[i].qualityType == val.qualityType && |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList[i].batch == val.batch) { |
| | | |
| | | for (let s = 0; s < outboundList.value.length; s++) { |
| | | if (outboundList.value[s].newId == info.value.wtransferWarehouseList[0].wtransferDetailList[i].id) { |
| | | return Toast.fail({ message: "该物料批次已存在" }) |
| | | } |
| | | } |
| | | |
| | | let obj = JSON.parse(JSON.stringify(val)) |
| | | obj.newId = info.value.wtransferWarehouseList[0].wtransferDetailList[i].id |
| | | outboundList.value.push(obj) |
| | | |
| | | } |
| | | } |
| | | |
| | | console.log(outboundList.value) |
| | | // let res = await outScanAppliances({ |
| | | // barCode: val.prefix + val.code, |
| | | // pId: info.value.wtransfer.id, |
| | | // type: 1 |
| | | // }) |
| | | // if (res.code === 200) { |
| | | // let isData: string = '' |
| | | // info.value.wtransferWarehouseList.forEach((item: any) => { |
| | | // if (res.data.warehouseId === item.warehouseId) { |
| | | // item.wtransferDetailList.forEach((item1: any) => { |
| | | // if (item1.materialId !== res.data.materialId) { |
| | | // isData = 'wl' |
| | | // } else if (res.data.qualityType !== item1.qualityType) { |
| | | // isData = 'lx' |
| | | // } else if (res.data.procedureId !== item1.procedureId) { |
| | | // isData = 'gx' |
| | | // } else if (item1.batch ? res.data.batch !== item1.batch : false) { |
| | | // isData = 'pc' |
| | | // } else { |
| | | // isData = '' |
| | | // } |
| | | // if (item1.materialId == res.data.materialId && res.data.qualityType == item1.qualityType && res.data.procedureId == item1.procedureId && item1.batch ? res.data.batch == item1.batch : true) { |
| | | // dataItem = res.data |
| | | // dataItem.wtransferDetailId = item1.id |
| | | // dataItem.wtransferId = item1.transferId |
| | | // dataItem.appliancesId = res.data.id |
| | | // let rul = upload() |
| | | // return; |
| | | // } |
| | | // }) |
| | | // } else { |
| | | // isData = 'ck' |
| | | // } |
| | | // if (isData === 'ck') { |
| | | // Toast.fail({ message: "仓库不一致" }) |
| | | // } else if (isData === 'wl') { |
| | | // Toast.fail({ message: "物料不一致" }) |
| | | // } else if (isData === 'lx') { |
| | | // Toast.fail({ message: "质量类型不一致" }) |
| | | // } else if (isData === 'gx') { |
| | | // Toast.fail({ message: "工序不一致" }) |
| | | // } else if (isData === 'pc') { |
| | | // Toast.fail({ message: "批次不一致" }) |
| | | // } |
| | | // }) |
| | | // } |
| | | // show.value = false |
| | | } |
| | | |
| | | // 获取详情 (转库单/出库单) |
| | | const getInfo = () => { |
| | | let type: string = route.query.type as string |
| | | if (type === QRCodeType.CKD.toString()) { |
| | | console.log('出库单') |
| | | wOutBoundForInOut({ |
| | | id: Number(route.query.id), |
| | | wOutboundType: 0 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | info.value = res.data |
| | | warehouseId.value = info.value.wtransferWarehouseList[0].warehouseId.toString() |
| | | } else { |
| | | Toast.fail({ message: res.message, forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | router.go(-1) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } else if (type === QRCodeType.ZKD.toString()) { |
| | | console.log('转库单') |
| | | wTransferForInOut({ |
| | | id: Number(route.query.id), |
| | | wTransferType: 0 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | info.value = res.data |
| | | warehouseId.value = info.value.wtransferWarehouseList[0].warehouseId.toString() |
| | | } else { |
| | | Toast.fail({ message: res.message, forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | router.go(-1) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 删除对应的批次 |
| | | const dele = (index: Number) => { |
| | | outboundList.value.forEach((item: any, i: number) => { |
| | | if (index === i) { |
| | | outboundList.value.splice(i, 1) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 上传工装 |
| | | const upload = () => { |
| | | if (type === QRCodeType.ZKD.toString()) { |
| | | wTransferForInOut({ |
| | | id: Number(route.query.id), |
| | | optType: 1, |
| | | wTransferType: 0, |
| | | jsonBean: dataItem |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | getInfo() |
| | | } |
| | | }) |
| | | } else if (type === QRCodeType.CKD.toString()) { |
| | | wOutBoundForInOut({ |
| | | id: Number(route.query.id), |
| | | optType: 1, |
| | | wOutboundType: 0, |
| | | jsonBean: dataItem |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | getInfo() |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 点击扫码出库 |
| | | const ck = () => { |
| | | openCode.value = true |
| | | } |
| | | |
| | | // 提交操作 |
| | | const submit = () => { |
| | | if (type === QRCodeType.ZKD.toString()) { |
| | | if (outboundList.value.length > 0) { |
| | | let result = outboundList.value.reduce((a, b) => { |
| | | if (a[b.newId]) { |
| | | a[b.newId].push(b); |
| | | } else { |
| | | a[b.newId] = [b]; |
| | | } |
| | | return a; |
| | | }, {}); |
| | | |
| | | for (let i = 0; i < info.value.wtransferWarehouseList[0].wtransferDetailList.length; i++) { |
| | | for (let a in result) { |
| | | if (info.value.wtransferWarehouseList[0].wtransferDetailList[i].id == a) { |
| | | let total = 0 |
| | | for (let b = 0; b < result[a].length; b++) { |
| | | total = Number(total) + Number(result[a][b].num) |
| | | } |
| | | console.log(total, info.value.wtransferWarehouseList[0].wtransferDetailList[i].outPlannum) |
| | | if (!total || total <= 0) { |
| | | return Toast.fail({ message: '出库物料数量必须大于0', forbidClick: true, duration: 2000 }) |
| | | } |
| | | if (total > info.value.wtransferWarehouseList[0].wtransferDetailList[i].outPlannum) { |
| | | return Toast.fail({ message: '出库数量不能大于待出库数量', forbidClick: true, duration: 2000 }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | let submitTransferOutDetailDTOList: any = [] |
| | | outboundList.value.forEach((item: any) => { |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((child: any) => { |
| | | if (item.newId == child.id) { |
| | | submitTransferOutDetailDTOList.push({ |
| | | outNum: item.num, |
| | | wstockId: item.id, |
| | | wtransferDetailId: child.id |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | transferToOutNew({ |
| | | submitTransferOutDetailDTOList, |
| | | wtransferId: route.query.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | store.dispatch('getUpcomingNum') |
| | | Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } else { |
| | | Toast.fail({ message: '请选择出库物料', forbidClick: true, duration: 2000 }) |
| | | } |
| | | // let yx: number = 0 |
| | | // let dc: number = 0 |
| | | // info.value.wtransferRedisCodeBeanList.forEach((element: any) => { |
| | | // yx = yx + element.num |
| | | // }) |
| | | // info.value.wtransferWarehouseList.forEach((element: any) => { |
| | | // element.wtransferDetailList.forEach((elementChilder: any) => { |
| | | // dc = dc + elementChilder.outPlannum |
| | | // }) |
| | | // }) |
| | | // if (yx < dc) { |
| | | // Dialog.confirm({ |
| | | // title: '提示', |
| | | // message: '待出物料与已出物料数量不一致,是否确认出库', |
| | | // }) |
| | | // .then(() => { |
| | | // wTransferForInOutUpload({ |
| | | // id: info.value.wtransfer.id, |
| | | // wTransferType: 0 |
| | | // }).then(res => { |
| | | // if (res.code === 200) { |
| | | // store.dispatch('getUpcomingNum') |
| | | // Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | // setTimeout(() => { |
| | | // // router.go(-1) |
| | | // router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) |
| | | // }, 2000) |
| | | // } |
| | | // }) |
| | | // return |
| | | // }) |
| | | // .catch(() => { |
| | | |
| | | // }); |
| | | // } else { |
| | | // wTransferForInOutUpload({ |
| | | // id: info.value.wtransfer.id, |
| | | // wTransferType: 0 |
| | | // }).then(res => { |
| | | // if (res.code === 200) { |
| | | // store.dispatch('getUpcomingNum') |
| | | // Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | // setTimeout(() => { |
| | | // // router.go(-1) |
| | | // router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) |
| | | // }, 2000) |
| | | // } |
| | | // }) |
| | | // } |
| | | } else if (type === QRCodeType.CKD.toString()) { |
| | | wOutBoundForUpload({ |
| | | id: info.value.woutbound.id, |
| | | wOutboundType: 0 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | store.dispatch('getUpcomingNum') |
| | | Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | // router.go(-1) |
| | | router.replace({ name: 'wOutboundDetail', query: { id: info.value.wtransfer.id } }) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 获取待办详情(判断当前待办是否已处理) |
| | | const getDBs = async (id: string): Promise<any> => { |
| | | let res = await getDB(id) |
| | | if (res.code === 200) { |
| | | if (res.data.status === 1) { |
| | | if (type === QRCodeType.CKD.toString()) { |
| | | await router.replace({ name: 'wOutboundDetail', query: { id: route.query.id } }) |
| | | } else if (type === QRCodeType.ZKD.toString()) { |
| | | await router.replace({ name: 'wTransferDetail', query: { id: route.query.id } }) |
| | | } |
| | | } else { |
| | | await getInfo() |
| | | } |
| | | } |
| | | } |
| | | |
| | | onMounted(() => { |
| | | if (route.query.dbid) { |
| | | getDBs(route.query.dbid as string) |
| | | } else { |
| | | getInfo() |
| | | } |
| | | // 打开手动选择工装弹框 |
| | | const openxz = () => { |
| | | let arr: any = [] |
| | | if (info.value.wtransferRedisCodeBeanList.length !== 0) { |
| | | info.value.wtransferRedisCodeBeanList.forEach((element: any) => { |
| | | arr.push(element.appliancesId) |
| | | }) |
| | | ids.value = arr.join(',') |
| | | } else { |
| | | ids.value = '' |
| | | } |
| | | show.value = true |
| | | } |
| | | |
| | | const closeBox = () => { |
| | | show.value = false |
| | | } |
| | | |
| | | const changeNum = (item: any) => { |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((row: any) => { |
| | | if (row.materialId === item.materialId) { |
| | | if (Number(item.num) > Number(row.outPlannum)) { |
| | | item.num = 0 |
| | | Toast.fail({ message: "出库物料数量不能大于待出库物料数量" }) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 提交工装 |
| | | const getValue = async (val: any, i: number) => { |
| | | // if (i === 0) { |
| | | show.value = false |
| | | // } |
| | | |
| | | |
| | | for (let i = 0; i < info.value.wtransferWarehouseList[0].wtransferDetailList.length; i++) { |
| | | if (info.value.wtransferWarehouseList[0].wtransferDetailList[i].materialId == val.materialId && |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList[i].procedureId == val.procedureId && |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList[i].qualityType == val.qualityType && |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList[i].batch == val.batch) { |
| | | |
| | | for (let s = 0; s < outboundList.value.length; s++) { |
| | | if (outboundList.value[s].newId == info.value.wtransferWarehouseList[0].wtransferDetailList[i].id) { |
| | | return Toast.fail({ message: "该物料批次已存在" }) |
| | | } |
| | | } |
| | | |
| | | let obj = JSON.parse(JSON.stringify(val)) |
| | | obj.newId = info.value.wtransferWarehouseList[0].wtransferDetailList[i].id |
| | | outboundList.value.push(obj) |
| | | |
| | | } |
| | | } |
| | | |
| | | console.log(outboundList.value) |
| | | // let res = await outScanAppliances({ |
| | | // barCode: val.prefix + val.code, |
| | | // pId: info.value.wtransfer.id, |
| | | // type: 1 |
| | | // }) |
| | | // if (res.code === 200) { |
| | | // let isData: string = '' |
| | | // info.value.wtransferWarehouseList.forEach((item: any) => { |
| | | // if (res.data.warehouseId === item.warehouseId) { |
| | | // item.wtransferDetailList.forEach((item1: any) => { |
| | | // if (item1.materialId !== res.data.materialId) { |
| | | // isData = 'wl' |
| | | // } else if (res.data.qualityType !== item1.qualityType) { |
| | | // isData = 'lx' |
| | | // } else if (res.data.procedureId !== item1.procedureId) { |
| | | // isData = 'gx' |
| | | // } else if (item1.batch ? res.data.batch !== item1.batch : false) { |
| | | // isData = 'pc' |
| | | // } else { |
| | | // isData = '' |
| | | // } |
| | | // if (item1.materialId == res.data.materialId && res.data.qualityType == item1.qualityType && res.data.procedureId == item1.procedureId && item1.batch ? res.data.batch == item1.batch : true) { |
| | | // dataItem = res.data |
| | | // dataItem.wtransferDetailId = item1.id |
| | | // dataItem.wtransferId = item1.transferId |
| | | // dataItem.appliancesId = res.data.id |
| | | // let rul = upload() |
| | | // return; |
| | | // } |
| | | // }) |
| | | // } else { |
| | | // isData = 'ck' |
| | | // } |
| | | // if (isData === 'ck') { |
| | | // Toast.fail({ message: "仓库不一致" }) |
| | | // } else if (isData === 'wl') { |
| | | // Toast.fail({ message: "物料不一致" }) |
| | | // } else if (isData === 'lx') { |
| | | // Toast.fail({ message: "质量类型不一致" }) |
| | | // } else if (isData === 'gx') { |
| | | // Toast.fail({ message: "工序不一致" }) |
| | | // } else if (isData === 'pc') { |
| | | // Toast.fail({ message: "批次不一致" }) |
| | | // } |
| | | // }) |
| | | // } |
| | | // show.value = false |
| | | } |
| | | |
| | | // 获取详情 (转库单/出库单) |
| | | const getInfo = () => { |
| | | let type: string = route.query.type as string |
| | | if (type === QRCodeType.CKD.toString()) { |
| | | console.log('出库单') |
| | | wOutBoundForInOut({ |
| | | id: Number(route.query.id), |
| | | wOutboundType: 0 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | info.value = res.data |
| | | warehouseId.value = info.value.wtransferWarehouseList[0].warehouseId.toString() |
| | | } else { |
| | | Toast.fail({ message: res.message, forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | router.go(-1) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } else if (type === QRCodeType.ZKD.toString()) { |
| | | console.log('转库单') |
| | | wTransferForInOut({ |
| | | id: Number(route.query.id), |
| | | wTransferType: 0 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | info.value = res.data |
| | | warehouseId.value = info.value.wtransferWarehouseList[0].warehouseId.toString() |
| | | } else { |
| | | Toast.fail({ message: res.message, forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | router.go(-1) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 删除对应的批次 |
| | | const dele = (index: Number) => { |
| | | outboundList.value.forEach((item: any, i: number) => { |
| | | if (index === i) { |
| | | outboundList.value.splice(i, 1) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 上传工装 |
| | | const upload = () => { |
| | | if (type === QRCodeType.ZKD.toString()) { |
| | | wTransferForInOut({ |
| | | id: Number(route.query.id), |
| | | optType: 1, |
| | | wTransferType: 0, |
| | | jsonBean: dataItem |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | getInfo() |
| | | } |
| | | }) |
| | | } else if (type === QRCodeType.CKD.toString()) { |
| | | wOutBoundForInOut({ |
| | | id: Number(route.query.id), |
| | | optType: 1, |
| | | wOutboundType: 0, |
| | | jsonBean: dataItem |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | getInfo() |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 点击扫码出库 |
| | | const ck = () => { |
| | | openCode.value = true |
| | | } |
| | | |
| | | // 提交操作 |
| | | const submit = () => { |
| | | if (type === QRCodeType.ZKD.toString()) { |
| | | if (outboundList.value.length > 0) { |
| | | let result = outboundList.value.reduce((a, b) => { |
| | | if (a[b.newId]) { |
| | | a[b.newId].push(b); |
| | | } else { |
| | | a[b.newId] = [b]; |
| | | } |
| | | return a; |
| | | }, {}); |
| | | |
| | | for (let i = 0; i < info.value.wtransferWarehouseList[0].wtransferDetailList.length; i++) { |
| | | for (let a in result) { |
| | | if (info.value.wtransferWarehouseList[0].wtransferDetailList[i].id == a) { |
| | | let total = 0 |
| | | for (let b = 0; b < result[a].length; b++) { |
| | | total = Number(total) + Number(result[a][b].num) |
| | | } |
| | | console.log(total, info.value.wtransferWarehouseList[0].wtransferDetailList[i].outPlannum) |
| | | if (!total || total <= 0) { |
| | | return Toast.fail({ message: '出库物料数量必须大于0', forbidClick: true, duration: 2000 }) |
| | | } |
| | | if (total > info.value.wtransferWarehouseList[0].wtransferDetailList[i].outPlannum) { |
| | | return Toast.fail({ message: '出库数量不能大于待出库数量', forbidClick: true, duration: 2000 }) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | let submitTransferOutDetailDTOList: any = [] |
| | | outboundList.value.forEach((item: any) => { |
| | | info.value.wtransferWarehouseList[0].wtransferDetailList.forEach((child: any) => { |
| | | if (item.newId == child.id) { |
| | | submitTransferOutDetailDTOList.push({ |
| | | outNum: item.num, |
| | | wstockId: item.id, |
| | | wtransferDetailId: child.id |
| | | }) |
| | | } |
| | | }) |
| | | }) |
| | | transferToOutNew({ |
| | | submitTransferOutDetailDTOList, |
| | | wtransferId: route.query.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | store.dispatch('getUpcomingNum') |
| | | Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } else { |
| | | Toast.fail({ message: '请选择出库物料', forbidClick: true, duration: 2000 }) |
| | | } |
| | | // let yx: number = 0 |
| | | // let dc: number = 0 |
| | | // info.value.wtransferRedisCodeBeanList.forEach((element: any) => { |
| | | // yx = yx + element.num |
| | | // }) |
| | | // info.value.wtransferWarehouseList.forEach((element: any) => { |
| | | // element.wtransferDetailList.forEach((elementChilder: any) => { |
| | | // dc = dc + elementChilder.outPlannum |
| | | // }) |
| | | // }) |
| | | // if (yx < dc) { |
| | | // Dialog.confirm({ |
| | | // title: '提示', |
| | | // message: '待出物料与已出物料数量不一致,是否确认出库', |
| | | // }) |
| | | // .then(() => { |
| | | // wTransferForInOutUpload({ |
| | | // id: info.value.wtransfer.id, |
| | | // wTransferType: 0 |
| | | // }).then(res => { |
| | | // if (res.code === 200) { |
| | | // store.dispatch('getUpcomingNum') |
| | | // Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | // setTimeout(() => { |
| | | // // router.go(-1) |
| | | // router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) |
| | | // }, 2000) |
| | | // } |
| | | // }) |
| | | // return |
| | | // }) |
| | | // .catch(() => { |
| | | |
| | | // }); |
| | | // } else { |
| | | // wTransferForInOutUpload({ |
| | | // id: info.value.wtransfer.id, |
| | | // wTransferType: 0 |
| | | // }).then(res => { |
| | | // if (res.code === 200) { |
| | | // store.dispatch('getUpcomingNum') |
| | | // Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | // setTimeout(() => { |
| | | // // router.go(-1) |
| | | // router.replace({ name: 'wTransferDetail', query: { id: info.value.wtransfer.id, dbid: route.query.dbid } }) |
| | | // }, 2000) |
| | | // } |
| | | // }) |
| | | // } |
| | | } else if (type === QRCodeType.CKD.toString()) { |
| | | wOutBoundForUpload({ |
| | | id: info.value.woutbound.id, |
| | | wOutboundType: 0 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | store.dispatch('getUpcomingNum') |
| | | Toast.success({ message: '操作成功', forbidClick: true, duration: 2000 }) |
| | | setTimeout(() => { |
| | | // router.go(-1) |
| | | router.replace({ name: 'wOutboundDetail', query: { id: info.value.wtransfer.id } }) |
| | | }, 2000) |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // 获取待办详情(判断当前待办是否已处理) |
| | | const getDBs = async (id: string): Promise<any> => { |
| | | let res = await getDB(id) |
| | | if (res.code === 200) { |
| | | if (res.data.status === 1) { |
| | | if (type === QRCodeType.CKD.toString()) { |
| | | await router.replace({ name: 'wOutboundDetail', query: { id: route.query.id } }) |
| | | } else if (type === QRCodeType.ZKD.toString()) { |
| | | await router.replace({ name: 'wTransferDetail', query: { id: route.query.id } }) |
| | | } |
| | | } else { |
| | | await getInfo() |
| | | } |
| | | } |
| | | } |
| | | |
| | | onMounted(() => { |
| | | if (route.query.dbid) { |
| | | getDBs(route.query.dbid as string) |
| | | } else { |
| | | getInfo() |
| | | } |
| | | }) |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .page { |
| | | .page { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | background: #F7F7F7; |
| | | |
| | | .page_info { |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | |
| | | .page_info_title { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #4275FC; |
| | | } |
| | | |
| | | .page_info_list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin: 30px 0 0 0; |
| | | |
| | | .page_info_list_item { |
| | | width: 100%; |
| | | height: 100%; |
| | | position: absolute; |
| | | background: #F7F7F7; |
| | | .page_info { |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | .page_info_title { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #4275FC; |
| | | } |
| | | .page_info_list { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | margin: 30px 0 0 0; |
| | | .page_info_list_item { |
| | | width: 100%; |
| | | display: flex; |
| | | margin-top: 24px; |
| | | &:nth-child(1) { |
| | | margin-top: 0; |
| | | } |
| | | /*&:nth-child(2) {*/ |
| | | /* margin-top: 0;*/ |
| | | /*}*/ |
| | | .page_info_list_item_label { |
| | | flex-shrink: 0; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | .page_info_list_item_nr { |
| | | flex: 1; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | .page_info_bz { |
| | | padding: 24px; |
| | | background: #F7F7F7; |
| | | margin-top: 30px; |
| | | .page_info_bz_title { |
| | | font-size: 26px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-bottom: 20px; |
| | | } |
| | | .page_info_bz_nr { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | } |
| | | display: flex; |
| | | margin-top: 24px; |
| | | |
| | | &:nth-child(1) { |
| | | margin-top: 0; |
| | | } |
| | | .switch { |
| | | padding: 0 30px; |
| | | button { |
| | | width: 100%; |
| | | border: none; |
| | | height: 76px; |
| | | background: #ffffff; |
| | | border-radius: 36px; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: black; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | img { |
| | | width: 28px; |
| | | height: 28px; |
| | | margin-right: 14px; |
| | | } |
| | | } |
| | | |
| | | /*&:nth-child(2) {*/ |
| | | /* margin-top: 0;*/ |
| | | /*}*/ |
| | | .page_info_list_item_label { |
| | | flex-shrink: 0; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | .page_h { |
| | | height: 20px; |
| | | |
| | | .page_info_list_item_nr { |
| | | flex: 1; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | .page_sfq { |
| | | font-size: 32px; |
| | | } |
| | | } |
| | | |
| | | .page_info_bz { |
| | | padding: 24px; |
| | | background: #F7F7F7; |
| | | margin-top: 30px; |
| | | |
| | | .page_info_bz_title { |
| | | font-size: 26px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | margin-bottom: 20px; |
| | | } |
| | | |
| | | .page_info_bz_nr { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .switch { |
| | | padding: 0 30px; |
| | | |
| | | button { |
| | | width: 100%; |
| | | border: none; |
| | | height: 76px; |
| | | background: #ffffff; |
| | | border-radius: 36px; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: black; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | img { |
| | | width: 28px; |
| | | height: 28px; |
| | | margin-right: 14px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page_h { |
| | | height: 20px; |
| | | } |
| | | |
| | | .page_sfq { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | img { |
| | | width: 36px; |
| | | height: 36px; |
| | | margin-right: 16px; |
| | | } |
| | | } |
| | | |
| | | .page_dck { |
| | | .page_dck_title { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .page_dck_title_x { |
| | | width: 8px; |
| | | height: 30px; |
| | | background: #4275FC; |
| | | border-radius: 2px; |
| | | margin-right: 16px; |
| | | } |
| | | |
| | | span { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page_content { |
| | | margin-top: 28px; |
| | | |
| | | .page_content_title { |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | .page_content_title_top { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | span { |
| | | &:nth-child(1) { |
| | | font-size: 30px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | display: flex; |
| | | align-items: center; |
| | | img { |
| | | width: 36px; |
| | | height: 36px; |
| | | margin-right: 16px; |
| | | } |
| | | |
| | | &:nth-child(2) { |
| | | flex-shrink: 0; |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | |
| | | span { |
| | | font-size: 24px; |
| | | color: $nav-color; |
| | | } |
| | | } |
| | | } |
| | | .page_dck { |
| | | .page_dck_title { |
| | | display: flex; |
| | | align-items: center; |
| | | .page_dck_title_x { |
| | | width: 8px; |
| | | height: 30px; |
| | | background: #4275FC; |
| | | border-radius: 2px; |
| | | margin-right: 16px; |
| | | } |
| | | span { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page_content_title_bottom { |
| | | .green { |
| | | color: $nav-stateColor7 !important; |
| | | } |
| | | .page_content { |
| | | margin-top: 28px; |
| | | .page_content_title { |
| | | display: flex; |
| | | flex-direction: column; |
| | | .page_content_title_top { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | span { |
| | | &:nth-child(1) { |
| | | font-size: 30px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | &:nth-child(2) { |
| | | flex-shrink: 0; |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | span { |
| | | font-size: 24px; |
| | | color: $nav-color; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .page_content_title_bottom { |
| | | .green { |
| | | color: $nav-stateColor7 !important; |
| | | } |
| | | .warning { |
| | | color: $nav-stateColor5 !important; |
| | | } |
| | | .error { |
| | | color: $nav-stateColor4 !important; |
| | | } |
| | | span { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | } |
| | | } |
| | | .page_content_list { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | padding-bottom: 30px; |
| | | margin-top: 28px; |
| | | border-bottom: 1px solid #E5E5E5; |
| | | &:first-child { |
| | | margin: 0; |
| | | } |
| | | &:last-child { |
| | | border: none; |
| | | } |
| | | .page_content_list_items { |
| | | width: 30%; |
| | | display: flex; |
| | | margin-top: 24px; |
| | | .page_content_list_item_label { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | .page_content_list_item_nr { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | .page_content_list_item { |
| | | width: 70%; |
| | | display: flex; |
| | | .page_content_list_item_label { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | .page_content_list_item_nr { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .warning { |
| | | color: $nav-stateColor5 !important; |
| | | } |
| | | .page_yxwl { |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | .page_yxwl_title { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .page_yxwl_title_x { |
| | | width: 8px; |
| | | height: 30px; |
| | | background: #4275FC; |
| | | border-radius: 2px; |
| | | margin-right: 16px; |
| | | } |
| | | span { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | .left { |
| | | display: flex; |
| | | align-items: center; |
| | | .page_yxwl_title_x { |
| | | width: 8px; |
| | | height: 30px; |
| | | background: #4275FC; |
| | | border-radius: 2px; |
| | | margin-right: 16px; |
| | | } |
| | | span { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | } |
| | | .right { |
| | | display: flex; |
| | | align-items: center; |
| | | img { |
| | | width: 28px; |
| | | height: 28px; |
| | | margin-right: 14px; |
| | | } |
| | | span { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | .page_yxwl_kong { |
| | | padding: 50px 0; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | span { |
| | | font-size: 25px; |
| | | color: black; |
| | | } |
| | | } |
| | | .page_yxwl_list { |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding-bottom: 30px; |
| | | border-bottom: 1px solid #ececec; |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | border: none; |
| | | } |
| | | .page_yxwl_list_item { |
| | | margin-top: 28px; |
| | | .page_yxwl_list_item_sx { |
| | | margin-top: 10px; |
| | | span { |
| | | color: black; |
| | | } |
| | | } |
| | | .page_yxwl_list_item_top { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .page_yxwl_list_item_top_left { |
| | | font-size: 30px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | .page_yxwl_list_item_top_right { |
| | | span { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | span { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: $nav-color; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .page_yxwl_list_item_num { |
| | | display: flex; |
| | | position: relative; |
| | | margin-top: 36px; |
| | | &:first-child { |
| | | margin-top: 0; |
| | | } |
| | | .dele { |
| | | position: absolute; |
| | | right: -30px; |
| | | width: 48px; |
| | | height: 48px; |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | .item { |
| | | width: 50%; |
| | | display: flex; |
| | | align-items: center; |
| | | .label { |
| | | flex-shrink: 0; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | .nr { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | input { |
| | | width: 130px; |
| | | height: 40px; |
| | | border-radius: 8px; |
| | | border: 1PX solid #E5E5E5; |
| | | margin-right: 10px; |
| | | } |
| | | span { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .error { |
| | | color: $nav-stateColor4 !important; |
| | | } |
| | | .page_zw { |
| | | height: 160px; |
| | | |
| | | span { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | } |
| | | .page_footer { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | padding: 0 30px 68px 30px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | .page_footer_smck { |
| | | width: 334px; |
| | | height: 88px; |
| | | border: none; |
| | | background: #FFFFFF; |
| | | box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); |
| | | border-radius: 8px; |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: $nav-color; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | img { |
| | | width: 30px; |
| | | height: 30px; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | .page_footer_qrck { |
| | | // width: 334px; |
| | | flex: 1; |
| | | height: 88px; |
| | | border: none; |
| | | background: $nav-color; |
| | | box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); |
| | | border-radius: 8px; |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | | |
| | | .page_content_list { |
| | | width: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | padding-bottom: 30px; |
| | | margin-top: 28px; |
| | | border-bottom: 1px solid #E5E5E5; |
| | | |
| | | &:first-child { |
| | | margin: 0; |
| | | } |
| | | |
| | | &:last-child { |
| | | border: none; |
| | | } |
| | | |
| | | .page_content_list_items { |
| | | width: 30%; |
| | | display: flex; |
| | | margin-top: 24px; |
| | | |
| | | .page_content_list_item_label { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .page_content_list_item_nr { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | |
| | | .page_content_list_item { |
| | | width: 70%; |
| | | display: flex; |
| | | |
| | | .page_content_list_item_label { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .page_content_list_item_nr { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page_yxwl { |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | |
| | | .page_yxwl_title { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .page_yxwl_title_x { |
| | | width: 8px; |
| | | height: 30px; |
| | | background: #4275FC; |
| | | border-radius: 2px; |
| | | margin-right: 16px; |
| | | } |
| | | |
| | | span { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | |
| | | .left { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .page_yxwl_title_x { |
| | | width: 8px; |
| | | height: 30px; |
| | | background: #4275FC; |
| | | border-radius: 2px; |
| | | margin-right: 16px; |
| | | } |
| | | |
| | | span { |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | } |
| | | |
| | | .right { |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | img { |
| | | width: 28px; |
| | | height: 28px; |
| | | margin-right: 14px; |
| | | } |
| | | |
| | | span { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page_yxwl_kong { |
| | | padding: 50px 0; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | span { |
| | | font-size: 25px; |
| | | color: black; |
| | | } |
| | | } |
| | | |
| | | .page_yxwl_list { |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding-bottom: 30px; |
| | | border-bottom: 1px solid #ececec; |
| | | |
| | | &:last-child { |
| | | margin-bottom: 0; |
| | | border: none; |
| | | } |
| | | |
| | | .page_yxwl_list_item { |
| | | margin-top: 28px; |
| | | |
| | | .page_yxwl_list_item_sx { |
| | | margin-top: 10px; |
| | | |
| | | span { |
| | | color: black; |
| | | } |
| | | } |
| | | |
| | | .page_yxwl_list_item_top { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .page_yxwl_list_item_top_left { |
| | | font-size: 30px; |
| | | font-weight: 500; |
| | | color: #222222; |
| | | } |
| | | |
| | | .page_yxwl_list_item_top_right { |
| | | span { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | |
| | | span { |
| | | font-size: 24px; |
| | | font-weight: 400; |
| | | color: $nav-color; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page_yxwl_list_item_num { |
| | | display: flex; |
| | | position: relative; |
| | | margin-top: 36px; |
| | | |
| | | &:first-child { |
| | | margin-top: 0; |
| | | } |
| | | |
| | | .dele { |
| | | position: absolute; |
| | | right: -30px; |
| | | width: 48px; |
| | | height: 48px; |
| | | |
| | | img { |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | } |
| | | |
| | | .item { |
| | | width: 50%; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | .label { |
| | | flex-shrink: 0; |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #666666; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .nr { |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | |
| | | input { |
| | | width: 130px; |
| | | height: 40px; |
| | | border-radius: 8px; |
| | | border: 1PX solid #E5E5E5; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | span { |
| | | font-size: 26px; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page_zw { |
| | | height: 160px; |
| | | } |
| | | |
| | | .page_footer { |
| | | position: fixed; |
| | | bottom: 0; |
| | | left: 0; |
| | | width: 100%; |
| | | padding: 0 30px 68px 30px; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | |
| | | .page_footer_smck { |
| | | width: 334px; |
| | | height: 88px; |
| | | border: none; |
| | | background: #FFFFFF; |
| | | box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); |
| | | border-radius: 8px; |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: $nav-color; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | |
| | | img { |
| | | width: 30px; |
| | | height: 30px; |
| | | margin-right: 10px; |
| | | } |
| | | } |
| | | |
| | | .page_footer_qrck { |
| | | // width: 334px; |
| | | flex: 1; |
| | | height: 88px; |
| | | border: none; |
| | | background: $nav-color; |
| | | box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.08); |
| | | border-radius: 8px; |
| | | font-size: 32px; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | } |
| | | }</style> |