| | |
| | | export * from './business/index' |
| | | export * from './other/other' |
| | | export * from './workbench/index' |
| | | export * from './store/index' |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | export function ywOutinboundPage (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywOutinbound/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | export function ywOutinboundEx (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywOutinbound/exportExcel', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | export function ywOutinboundDetail (id) { |
| | | return request.get('/visitsAdmin/cloudService/business/ywOutinbound/' + id) |
| | | } |
| | | |
| | | export function ywOutinboundCreate (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywOutinbound/create', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | // åºåæ¥è¯¢ |
| | | export function ywStockPage (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywStock/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | export function ywStockPageEx (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywStock/exportExcel', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | |
| | | export function ywOutinboundRecord (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywOutinboundRecord/page', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | | export function ywOutinboundRecordEx (data) { |
| | | return request.post('/visitsAdmin/cloudService/business/ywOutinboundRecord/exportExcel', data, { |
| | | trim: true |
| | | }) |
| | | } |
| | |
| | | <GlobalWindow title="éæ©ç©æ" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close" |
| | | @confirm="confirm"> |
| | | <el-form ref="searchForm" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item prop="areaType" label="ç©æä¿¡æ¯"> |
| | | <el-input v-model="searchForm.aaa" placeholder="请è¾å
¥ç©æç¼ç /åç§°" @keypress.enter.native="search"></el-input> |
| | | <el-form-item prop="code" label="ç©æä¿¡æ¯"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥ç©æç¼ç /åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="areaIds" label="ç©æåç±»"> |
| | | <el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="è¯·éæ©ç©æåç±»" clearable |
| | |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <span> |
| | | <el-button type="primary" @click="getList">æç´¢</el-button> |
| | | <el-button type="primary" @click="getList(1)">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </span> |
| | | </el-form> |
| | | <!-- --> |
| | | <el-table @selection-change="handleSelectionChange" :data="list" stripe> |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column prop="categoryName" label="ç©æç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="creatorName" label="ç©æåç§°" min-width="80px"></el-table-column> |
| | | <el-table-column prop="createDate" label="æ¡ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åç" min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="è§æ ¼åå·" min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åä½" min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åºå" min-width="80px"></el-table-column> |
| | | <el-table-column prop="code" label="ç©æç¼ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="ç©æåç§°" min-width="80px"></el-table-column> |
| | | <el-table-column prop="qrcode" label="æ¡ç " min-width="100px"></el-table-column> |
| | | <el-table-column prop="brand" label="åç" min-width="80px"></el-table-column> |
| | | <el-table-column prop="attr" label="è§æ ¼åå·" min-width="80px"></el-table-column> |
| | | <el-table-column prop="unitName" label="åä½" min-width="80px"></el-table-column> |
| | | <el-table-column prop="maxStock" label="åºå" min-width="80px"></el-table-column> |
| | | </el-table> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination"> |
| | | <Pagination class="mt10" @size-change="handleSizeChange" @current-change="getList" :pagination="pagination"> |
| | | </Pagination> |
| | | </GlobalWindow> |
| | | </template> |
| | |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import { fetchList } from '@/api/ywMaterial' |
| | | import { ywStockPage } from '@/api/store/index' |
| | | import { fetchList as getCateList } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'OperaCategoryWindow', |
| | |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | isOut: false, |
| | | list: [], |
| | | selList: [], |
| | | cateList: [], |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.initData() |
| | | this.getCate() |
| | | }, |
| | | methods: { |
| | | confirm() { |
| | |
| | | this.selList = val |
| | | }, |
| | | getList(page) { |
| | | const { pagination, searchForm } = this |
| | | const { pagination, searchForm, isOut } = this |
| | | this.listLoading = true |
| | | if(page){pagination.page = page} |
| | | fetchList({ |
| | | console.log('isOut', isOut); |
| | | |
| | | let fn = isOut ? ywStockPage : fetchList |
| | | fn({ |
| | | capacity: pagination.pageSize, |
| | | page: pagination.page, |
| | | model: {...searchForm} |
| | |
| | | this.listLoading = false |
| | | this.list = res.records |
| | | this.pagination.total = res.total || 0 |
| | | if(isOut){ |
| | | this.list.forEach(item => { |
| | | item.brand = item.materialBrand |
| | | item.attr = item.materialAttr |
| | | item.name = item.materialName |
| | | item.id = item.materialId |
| | | item.code = item.materialCode |
| | | item.qrcode = item.materialQrcode |
| | | item.unitName = item.materialUnitName |
| | | item.maxStock = item.stock |
| | | }) |
| | | } |
| | | }, () => { |
| | | this.listLoading = false |
| | | }) |
| | | }, |
| | | initData() { |
| | | getCate() { |
| | | getCateList({ |
| | | model: { type: 3 }, |
| | | model: { type: 7 }, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | |
| | | <template> |
| | | <GlobalWindow width="960px" title="åºåºå详æ
" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | <GlobalWindow width="960px" :showConfirm="false" title="å
¥åºå详æ
" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="main"> |
| | | <div class="title" style="color: #333333;"> |
| | | <span>å
¥åºåç¼å·ï¼{{ info.code }}</span> |
| | | </div> |
| | | <div class="title"> |
| | | <span>å·¥å详æ
</span> |
| | | <span>åºç¡ä¿¡æ¯</span> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">åºåºä»åº</div> |
| | | <div class="val">{{ info.projectName }}</div> |
| | | <div class="la">å
¥åºä»åº</div> |
| | | <div class="val">{{ info.warehouseName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">åºåºæ¥æ</div> |
| | | <div class="val">{{ info.categoryName }}</div> |
| | | <div class="la">å
¥åºæ¥æ</div> |
| | | <div class="val">{{ info.doneDate }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">åºåºç±»å</div> |
| | | <div class="val">{{ info.creatorName }}{{ info.creatorCompany ? "-" + info.creatorCompany : '' }}</div> |
| | | <div class="la">å
¥åºç±»å</div> |
| | | <div class="val" v-if="info.type || info.type == 0">{{ StoreTypeOps[info.type].name }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å¤ç人</div> |
| | | <div class="val">{{ info.creatorPhone || info.creatorMobile }}</div> |
| | | <div class="val">{{ info.createUserName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="item" style="width: 66.6%;"> |
| | | <div class="la">夿³¨</div> |
| | | <div class="val">{{ info.createDate }}</div> |
| | | <div class="val">{{ info.remark }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="title">ç©æä¿¡æ¯</div> |
| | | <el-table :data="list" stripe> |
| | | <el-table-column align="center" type="index" width="55" /> |
| | | <el-table-column prop="creatorName" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="categoryName" label="ç©æç¼ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="æ¡å½¢ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åç" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åä½" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åºåºæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table :data="info.recordList" stripe> |
| | | <el-table-column align="center" label="åºå·" type="index" width="55" /> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialQrcode" label="æ¡å½¢ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialBrand" label="åç" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="materialUnitName" label="åä½" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="stock" label="å
¥åºæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </GlobalWindow> |
| | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import { detailById, dispatchOrder, dealOrder } from '@/api/workorder/ywWorkorder' |
| | | import { getUserList } from '@/api/system/user' |
| | | import { Message, Loading } from 'element-ui' |
| | | import dayjs from 'dayjs' |
| | | import { ywOutinboundDetail } from '@/api' |
| | | import { StoreTypeOps } from './config' |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | id: '', |
| | | visible: false, |
| | | info: {}, |
| | | list: [] |
| | | info: {recordList: []}, |
| | | StoreTypeOps |
| | | |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getDetail() |
| | | }, |
| | | methods: { |
| | | getDetail() { |
| | | const { id } = this |
| | | detailById(id).then(res => { |
| | | getDetail(id) { |
| | | ywOutinboundDetail(id).then(res => { |
| | | this.info = res |
| | | }) |
| | | }, |
| | |
| | | <template> |
| | | <GlobalWindow title="æ°å»ºåºåºå" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close" |
| | | <GlobalWindow title="æ°å»ºå
¥åºå" :visible.sync="isShowModal" :confirm-working="isLoading" width="900px" @close="close" |
| | | @confirm="confirm"> |
| | | <el-form :model="param" ref="form" :rules="rules"> |
| | | <div class="df_ac"> |
| | | <el-form-item class="w3" label="åºåºä»åº" prop="parentId"> |
| | | <el-select :disabled="param.id" v-model="param.parentId" placeholder="ä¸å¡«ä¸ºåä¸çº§åç±»"> |
| | | <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | <el-form-item class="w3" label="å
¥åºä»åº" prop="warehouseId"> |
| | | <el-select :disabled="param.id" v-model="param.warehouseId" placeholder="è¯·éæ©"> |
| | | <el-option v-for="op in storeList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item class="w3" label="åºåºæ¥æ"> |
| | | <el-date-picker type="date" v-model="param.getDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©åºåºæ¥æ"></el-date-picker> |
| | | <el-form-item class="w3" label="å
¥åºæ¥æ" prop="doneDate"> |
| | | <el-date-picker type="date" v-model="param.doneDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©å
¥åºæ¥æ"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item class="w3" label="åºåºç±»å" prop="parentId"> |
| | | <el-select :disabled="param.id" v-model="param.parentId" placeholder="ä¸å¡«ä¸ºåä¸çº§åç±»"> |
| | | <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | <el-form-item class="w3" label="å
¥åºç±»å" prop="type"> |
| | | <el-select :disabled="param.id" v-model="param.type" placeholder="è¯·éæ©å
¥åºç±»å"> |
| | | <el-option v-for="op in StoreTypeOps" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item class="w3" label="å¤ç人" prop="name"> |
| | | <el-input v-model="param.name" v-trim /> |
| | | <el-input v-model="param.createUserName" :disabled="true" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item class="w6" label="夿³¨" prop="name"> |
| | | <el-input v-model="param.name" placeholder="请è¾å
¥" v-trim /> |
| | | <el-form-item class="w6" label="夿³¨" prop="remark"> |
| | | <el-input v-model="param.remark" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | |
| | | <el-button type="primary" @click="handleOpenMaterial">éæ©ç©æ</el-button> |
| | | <el-table :data="list" stripe> |
| | | <el-table-column align="center" label="åºå·" type="index" width="50" /> |
| | | <el-table-column prop="creatorName" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="categoryName" label="ç©æç¼ç " show-overflow-tooltip min-width="90px"></el-table-column> |
| | | <el-table-column prop="createDate" label="æ¡å½¢ç " show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åç" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åä½" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åºåºæ°é" min-width="90px"> |
| | | <template v-slot="{row}"> |
| | | <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.aa" class="w100"></el-input> |
| | | <el-table-column prop="name" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="code" label="ç©æç¼ç " show-overflow-tooltip min-width="90px"></el-table-column> |
| | | <el-table-column prop="qrcode" label="æ¡å½¢ç " show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="brand" label="åç" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="unitName" label="åä½" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="å
¥åºæ°é" min-width="90px"> |
| | | <template v-slot="{ row }"> |
| | | <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.stock" |
| | | class="w100"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dealUserName" label="åºåæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="æä½" min-width="60px"> |
| | | <el-table-column prop="maxStock" label="åºåæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column label="æä½" min-width="60px"> |
| | | <template v-slot="scope"> |
| | | <span @click="handleDel(scope)" class="red pointer">å é¤</span> |
| | | </template> |
| | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import AssetSel from './AssetSel' |
| | | import { create, fetchCateList, getInfoById } from '@/api/business/category.js' |
| | | import { fetchList as getStoreList } from '@/api/ywWarehouse' |
| | | import { ywOutinboundCreate } from '@/api/store/index' |
| | | import { StoreTypeOps, rules } from './config' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | name: 'OperaCategoryWindow', |
| | | components: { GlobalWindow, AssetSel }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | param: {}, |
| | | param: { |
| | | createUserName: this.$store.state.userInfo.username, |
| | | creator: this.$store.state.userInfo.id, |
| | | inOut: 0 |
| | | }, |
| | | activeName: 'first', |
| | | isShowModal: false, |
| | | isShowSel: false, |
| | | isLoading: false, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥äºçº§åç±»åç§°', trigger: 'blur' }], |
| | | }, |
| | | list: [{}], |
| | | rules, |
| | | storeList: [], |
| | | list: [], |
| | | StoreTypeOps: StoreTypeOps.filter(i => i.type == 0), |
| | | |
| | | dataList: [], |
| | | } |
| | | }, |
| | | created() { |
| | | this.initData() |
| | | console.log(this.$store.state.userInfo) |
| | | |
| | | }, |
| | | methods: { |
| | | confirm() { |
| | | |
| | | this.$refs['form'].validate((valid) => { |
| | | if (valid) { |
| | | const { param, list } = this |
| | | if(list.length == 0) return Message.warning('请å
éæ©ç©æä¿¡æ¯') |
| | | let count = 0 // å
¥åºæ°éå¿
å¡« |
| | | list.forEach(item => { |
| | | if(!item.stock) count ++ |
| | | }) |
| | | if(count > 0) return Message.warning('请è¾å
¥æ£ç¡®çå
¥åºæ°é') |
| | | this.isLoading = true |
| | | ywOutinboundCreate({ |
| | | ...param, |
| | | recordList: list |
| | | }).then(res => { |
| | | this.isLoading = false |
| | | Message.success('æäº¤æå') |
| | | this.$emit('success') |
| | | this.close() |
| | | }, () => { |
| | | this.isLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | getList() { |
| | | fetchCateList({ type: 5 }).then(res => { |
| | | this.dataList = res || [] |
| | | initData() { |
| | | getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => { |
| | | this.storeList = res.records || [] |
| | | |
| | | }) |
| | | }, |
| | | changeSel() { |
| | | |
| | | changeSel(val) { |
| | | const list = val |
| | | list.forEach(item => { |
| | | const index = this.list.findIndex(i => i.id == item.id) |
| | | if(index == -1){ |
| | | item.materialId = item.id |
| | | item.multifile = null |
| | | this.list.push(item) |
| | | } |
| | | }) |
| | | }, |
| | | handleDel(val) { |
| | | const index = val.$index |
| | | this.list.splice(index, 1) |
| | | |
| | | |
| | | }, |
| | | handleOpenMaterial() { |
| | | this.isShowSel = true |
| | | this.$nextTick(() => { |
| | | this.$refs.AssetSelRef.isShowModal = true |
| | | this.$refs.AssetSelRef.getList() |
| | | }) |
| | | }, |
| | | close() { |
| | |
| | | <template> |
| | | <GlobalWindow width="960px" title="åºåºå详æ
" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | <GlobalWindow width="960px" :showConfirm="false" title="åºåºå详æ
" :visible.sync="visible" :confirm-working="isWorking" @close="close" |
| | | @confirm="confirm"> |
| | | <div class="main"> |
| | | <div class="title" style="color: #333333;"> |
| | | <span>åºåºåç¼å·ï¼{{ info.code }}</span> |
| | | </div> |
| | | <div class="title"> |
| | | <span>å·¥å详æ
</span> |
| | | <span>åºç¡ä¿¡æ¯</span> |
| | | </div> |
| | | <div class="main_content"> |
| | | <div class="list"> |
| | | <div class="item"> |
| | | <div class="la">åºåºä»åº</div> |
| | | <div class="val">{{ info.projectName }}</div> |
| | | <div class="val">{{ info.warehouseName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">åºåºæ¥æ</div> |
| | | <div class="val">{{ info.categoryName }}</div> |
| | | <div class="val">{{ info.doneDate }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">åºåºç±»å</div> |
| | | <div class="val">{{ info.creatorName }}{{ info.creatorCompany ? "-" + info.creatorCompany : '' }}</div> |
| | | <div class="val" v-if="info.type || info.type == 0">{{ StoreTypeOps[info.type].name }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="la">å¤ç人</div> |
| | | <div class="val">{{ info.creatorPhone || info.creatorMobile }}</div> |
| | | <div class="val">{{ info.createUserName }}</div> |
| | | </div> |
| | | <div class="item"> |
| | | <div class="item" style="width: 66.6%;"> |
| | | <div class="la">夿³¨</div> |
| | | <div class="val">{{ info.createDate }}</div> |
| | | <div class="val">{{ info.remark }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="title">ç©æä¿¡æ¯</div> |
| | | <el-table :data="list" stripe> |
| | | <el-table-column align="center" type="index" width="55" /> |
| | | <el-table-column prop="creatorName" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="categoryName" label="ç©æç¼ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="æ¡å½¢ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åç" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åä½" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åºåºæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table :data="info.recordList" stripe> |
| | | <el-table-column align="center" label="åºå·" type="index" width="55" /> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialQrcode" label="æ¡å½¢ç " show-overflow-tooltip min-width="100px"></el-table-column> |
| | | <el-table-column prop="materialBrand" label="åç" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="materialUnitName" label="åä½" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="stock" label="åºåºæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </GlobalWindow> |
| | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import { detailById, dispatchOrder, dealOrder } from '@/api/workorder/ywWorkorder' |
| | | import { getUserList } from '@/api/system/user' |
| | | import { Message, Loading } from 'element-ui' |
| | | import dayjs from 'dayjs' |
| | | import { ywOutinboundDetail } from '@/api' |
| | | import { StoreTypeOps } from './config' |
| | | export default { |
| | | components: { |
| | | GlobalWindow |
| | |
| | | extends: BaseOpera, |
| | | data() { |
| | | return { |
| | | id: '', |
| | | visible: false, |
| | | info: {}, |
| | | list: [] |
| | | info: {recordList: []}, |
| | | StoreTypeOps |
| | | |
| | | |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getDetail() |
| | | }, |
| | | methods: { |
| | | getDetail() { |
| | | const { id } = this |
| | | detailById(id).then(res => { |
| | | getDetail(id) { |
| | | ywOutinboundDetail(id).then(res => { |
| | | this.info = res |
| | | }) |
| | | }, |
| | |
| | | @confirm="confirm"> |
| | | <el-form :model="param" ref="form" :rules="rules"> |
| | | <div class="df_ac"> |
| | | <el-form-item class="w3" label="åºåºä»åº" prop="parentId"> |
| | | <el-select :disabled="param.id" v-model="param.parentId" placeholder="ä¸å¡«ä¸ºåä¸çº§åç±»"> |
| | | <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | <el-form-item class="w3" label="åºåºä»åº" prop="warehouseId"> |
| | | <el-select :disabled="param.id" v-model="param.warehouseId" placeholder="è¯·éæ©"> |
| | | <el-option v-for="op in storeList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item class="w3" label="åºåºæ¥æ"> |
| | | <el-date-picker type="date" v-model="param.getDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
| | | <el-form-item class="w3" label="åºåºæ¥æ" prop="doneDate"> |
| | | <el-date-picker type="date" v-model="param.doneDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" |
| | | placeholder="è¯·éæ©åºåºæ¥æ"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item class="w3" label="åºåºç±»å" prop="parentId"> |
| | | <el-select :disabled="param.id" v-model="param.parentId" placeholder="ä¸å¡«ä¸ºåä¸çº§åç±»"> |
| | | <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | <el-form-item class="w3" label="åºåºç±»å" prop="type"> |
| | | <el-select :disabled="param.id" v-model="param.type" placeholder="è¯·éæ©åºåºç±»å"> |
| | | <el-option v-for="op in StoreTypeOps" :key="op.id" :label="op.name" :value="op.id"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item class="w3" label="å¤ç人" prop="name"> |
| | | <el-input v-model="param.name" v-trim /> |
| | | <el-input v-model="param.createUserName" :disabled="true" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item class="w6" label="夿³¨" prop="name"> |
| | | <el-input v-model="param.name" placeholder="请è¾å
¥" v-trim /> |
| | | <el-form-item class="w6" label="夿³¨" prop="remark"> |
| | | <el-input v-model="param.remark" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | |
| | | <el-button type="primary" @click="handleOpenMaterial">éæ©ç©æ</el-button> |
| | | <el-table :data="list" stripe> |
| | | <el-table-column align="center" label="åºå·" type="index" width="50" /> |
| | | <el-table-column prop="creatorName" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="categoryName" label="ç©æç¼ç " show-overflow-tooltip min-width="90px"></el-table-column> |
| | | <el-table-column prop="createDate" label="æ¡å½¢ç " show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åç" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åä½" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="name" label="ç©æåç§°" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="code" label="ç©æç¼ç " show-overflow-tooltip min-width="90px"></el-table-column> |
| | | <el-table-column prop="qrcode" label="æ¡å½¢ç " show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="brand" label="åç" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="unitName" label="åä½" show-overflow-tooltip min-width="70px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="åºåºæ°é" min-width="90px"> |
| | | <template v-slot="{row}"> |
| | | <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.aa" class="w100"></el-input> |
| | | <template v-slot="{ row }"> |
| | | <el-input oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 11)" v-model="row.stock" |
| | | class="w100"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dealUserName" label="åºåæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="æä½" min-width="60px"> |
| | | <el-table-column prop="maxStock" label="åºåæ°é" show-overflow-tooltip min-width="80px"></el-table-column> |
| | | <el-table-column label="æä½" min-width="60px"> |
| | | <template v-slot="scope"> |
| | | <span @click="handleDel(scope)" class="red pointer">å é¤</span> |
| | | </template> |
| | |
| | | <script> |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import AssetSel from './AssetSel' |
| | | import { create, fetchCateList, getInfoById } from '@/api/business/category.js' |
| | | import { fetchList as getStoreList } from '@/api/ywWarehouse' |
| | | import { ywOutinboundCreate } from '@/api/store/index' |
| | | import { StoreTypeOps, rules } from './config' |
| | | import { Message } from 'element-ui' |
| | | export default { |
| | | name: 'OperaCategoryWindow', |
| | | components: { GlobalWindow, AssetSel }, |
| | | data() { |
| | | return { |
| | | // è¡¨åæ°æ® |
| | | param: {}, |
| | | param: { |
| | | createUserName: this.$store.state.userInfo.username, |
| | | creator: this.$store.state.userInfo.id, |
| | | inOut: 1 |
| | | }, |
| | | activeName: 'first', |
| | | isShowModal: false, |
| | | isShowSel: false, |
| | | isLoading: false, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [{ required: true, message: '请è¾å
¥äºçº§åç±»åç§°', trigger: 'blur' }], |
| | | }, |
| | | list: [{}], |
| | | rules, |
| | | storeList: [], |
| | | list: [], |
| | | StoreTypeOps: StoreTypeOps.filter(i => i.type == 1), |
| | | |
| | | dataList: [], |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | confirm() { |
| | | |
| | | }, |
| | | getList() { |
| | | fetchCateList({ type: 5 }).then(res => { |
| | | this.dataList = res || [] |
| | | |
| | | this.$refs['form'].validate((valid) => { |
| | | if (valid) { |
| | | const { param, list } = this |
| | | if(list.length == 0) return Message.warning('请å
éæ©ç©æä¿¡æ¯') |
| | | let count = 0 // åºåºæ°éå¿
å¡« |
| | | list.forEach(item => { |
| | | if(!item.stock) count ++ |
| | | }) |
| | | if(count > 0) return Message.warning('请è¾å
¥æ£ç¡®çåºåºæ°é') |
| | | this.isLoading = true |
| | | ywOutinboundCreate({ |
| | | ...param, |
| | | recordList: list |
| | | }).then(res => { |
| | | this.isLoading = false |
| | | Message.success('æäº¤æå') |
| | | this.$emit('success') |
| | | this.close() |
| | | }, () => { |
| | | this.isLoading = false |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | changeSel() { |
| | | |
| | | initData() { |
| | | getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => { |
| | | this.storeList = res.records || [] |
| | | }) |
| | | }, |
| | | changeSel(val) { |
| | | const list = val |
| | | list.forEach(item => { |
| | | if(this.list.indexOf(item.id) === -1){ |
| | | item.materialId = item.id |
| | | item.stock = null |
| | | this.list.push(item) |
| | | } |
| | | }) |
| | | }, |
| | | handleDel(val) { |
| | | const index = val.$index |
| | | this.list.splice(index, 1) |
| | | |
| | | |
| | | }, |
| | | handleOpenMaterial() { |
| | | this.isShowSel = true |
| | | this.$nextTick(() => { |
| | | this.$refs.AssetSelRef.isShowModal = true |
| | | this.$refs.AssetSelRef.isOut = true |
| | | this.$refs.AssetSelRef.getList() |
| | | console.log('-----'); |
| | | |
| | | }) |
| | | }, |
| | | close() { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const StoreTypeOps = [ |
| | | { name: 'éè´å
¥åº', id: 0, type: 0 }, |
| | | { name: 'é¢ç¨éå', id: 1, type: 0 }, |
| | | { name: 'è°æ´å
¥åº', id: 2, type: 0 }, |
| | | { name: 'å
¶ä»å
¥åº', id: 3, type: 0 }, |
| | | { name: 'ççå
¥åº', id: 4, type: 0 }, |
| | | { name: 'é¢ç¨åºåº', id: 5, type: 1 }, |
| | | { name: 'ä»åºåºåº', id: 6, type: 1 }, |
| | | { name: 'è°æ´åºåº', id: 7, type: 1 }, |
| | | { name: 'éè´åºåº', id: 8, type: 1 }, |
| | | { name: 'å
¶ä»åºåº', id: 9, type: 1 }, |
| | | { name: 'çåºåºåº', id: 10, type: 1 }, |
| | | ] |
| | | export const rules = { |
| | | warehouseId: [{ required: true, message: 'è¯·éæ©', trigger: 'blur' }], |
| | | doneDate: [{ required: true, message: 'è¯·éæ©', trigger: 'blur' }], |
| | | type: [{ required: true, message: 'è¯·éæ©', trigger: 'blur' }], |
| | | } |
| | |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEdit()" v-permissions="['business:ywpatrolline:create']">æ°å»ºåºåºå</el-button> |
| | | <el-button type="primary" @click="handleEdit()" v-permissions="['business:ywpatrolline:create']">æ°å»ºå
¥åºå</el-button> |
| | | <el-button @click="handleEx()" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="platformName" label="åºåºåå·" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="platformGroupName" label="åºåºä»åº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeFront" label="åºåºç±»å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeBack" label="åºåºæ¥æ" min-width="110" show-overflow-tooltip /> |
| | | <el-table-column prop="param1" label="åºåºæ°é" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="param2" label="æä½äºº" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="æä½æ¶é´" min-width="140" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="å
¥åºåå·" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="warehouseName" label="å
¥åºä»åº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="typeName" label="å
¥åºç±»å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="doneDate" label="å
¥åºæ¥æ" min-width="110" show-overflow-tooltip /> |
| | | <el-table-column label="å
¥åºæ°é" min-width="140"> |
| | | <template v-slot="{ row }"> |
| | | <div v-for="item in row.recordList">{{ item.materialName }}[{{ item.materialCode }}]*{{ item.stock }}{{ |
| | | item.materialUnitName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createUserName" label="æä½äºº" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="createDate" label="æä½æ¶é´" min-width="140" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="æä½" min-width="80" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span @click="handleDetail(row)" class="primaryColor pointer">æ¥ç详æ
</span> |
| | |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import { platformLogPage, getPlatformGroupList } from '@/api' |
| | | import { ywOutinboundPage, ywOutinboundEx } from '@/api' |
| | | import { fetchList as getStoreList } from '@/api/ywWarehouse' |
| | | import { StoreTypeOps, rules } from './components/config' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [{}], |
| | | filters: { |
| | | inOut: 0 |
| | | }, |
| | | StoreTypeOps, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'carCodeFront', |
| | | filed: 'code', |
| | | type: 'input', |
| | | label: 'åºåºåå·', |
| | | label: 'å
¥åºåå·', |
| | | }, |
| | | { |
| | | filed: 'platformGroupId', |
| | | filed: 'warehouseId', |
| | | type: 'select', |
| | | label: 'æå¨ä»åº', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: [] |
| | | }, |
| | | { |
| | | filed: 'carCodeFront', |
| | | type: 'input', |
| | | label: 'åºåºç±»å', |
| | | filed: 'type', |
| | | type: 'select', |
| | | label: 'å
¥åºç±»å', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: StoreTypeOps.filter(i => i.type == 0) |
| | | }, |
| | | ], |
| | | online: true |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getList() |
| | | // this.getGroupList() |
| | | this.getList() |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | |
| | | this.$refs.InEditRef.isShowModal = true |
| | | }) |
| | | }, |
| | | handleDetail() { |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.InDetailRef.visible = true |
| | | this.$refs.InDetailRef.getDetail(row.id) |
| | | }) |
| | | }, |
| | | handleEx() { }, |
| | | getGroupList() { |
| | | getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.map(i => { |
| | | return { |
| | | value: i.id, |
| | | label: i.name |
| | | } |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导åºåï¼') |
| | | .then(() => { |
| | | this.loading = true |
| | | ywOutinboundEx({ |
| | | page: this.pagination.page, |
| | | capacity: 1000000, |
| | | model: this.filters |
| | | }) |
| | | .then(response => { |
| | | this.download(response) |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: 'å
¨é¨æå°ç»' }) |
| | | .catch(() => { }) |
| | | }, |
| | | initData() { |
| | | getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.records || [] |
| | | }) |
| | | }, |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | if(page){pagination.page = page} |
| | | platformLogPage({ |
| | | if (page) { pagination.page = page } |
| | | ywOutinboundPage({ |
| | | model: { |
| | | ...filters, |
| | | queryStatus: '6,7,8', |
| | | beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, |
| | | beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, |
| | | inOut: 0 |
| | | }, |
| | | sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | // sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | | page: page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | item.typeName = this.StoreTypeOps[item.type].name |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.filters = {inOut: 0} |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | |
| | | <el-button @click="handleEx()" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="platformName" label="åºåºåå·" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="platformGroupName" label="åºåºä»åº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeFront" label="åºåºç±»å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeBack" label="åºåºæ¥æ" min-width="110" show-overflow-tooltip /> |
| | | <el-table-column prop="param1" label="åºåºæ°é" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="param2" label="æä½äºº" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="æä½æ¶é´" min-width="140" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="åºåºåå·" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="warehouseName" label="åºåºä»åº" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="typeName" label="åºåºç±»å" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="doneDate" label="åºåºæ¥æ" min-width="110" show-overflow-tooltip /> |
| | | <el-table-column label="åºåºæ°é" min-width="140"> |
| | | <template v-slot="{ row }"> |
| | | <div v-for="item in row.recordList">{{ item.materialName }}[{{ item.materialCode }}]*{{ item.stock }}{{ item.materialUnitName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createUserName" label="é¢ç¨äºº" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="createDate" label="æä½æ¶é´" min-width="140" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="æä½" min-width="80" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span @click="handleDetail(row)" class="primaryColor pointer">æ¥ç详æ
</span> |
| | |
| | | </div> |
| | | <!-- --> |
| | | <OutEdit v-if="isShowEdit" @close="isShowEdit = false" @success="getList" ref="OutEditRef" /> |
| | | <OutDetail v-if="isShowDetail" ref="OutDetailRef" /> |
| | | <OutDetail v-if="isShowDetail" ref="InDetailRef" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/common/Pagination' |
| | | import QueryForm from '@/components/common/QueryForm' |
| | | import OutEdit from './components/OutEdit' |
| | | import OutDetail from './components/OutDetail' |
| | | import OutEdit from './components/OutEdit.vue' |
| | | import OutDetail from './components/OutDetail.vue' |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import { platformLogPage, getPlatformGroupList } from '@/api' |
| | | import { ywOutinboundPage } from '@/api' |
| | | import { fetchList as getStoreList } from '@/api/ywWarehouse' |
| | | import { StoreTypeOps, rules } from './components/config' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | |
| | | page: 1, |
| | | total: 0 |
| | | }, |
| | | filters: {}, |
| | | list: [{}], |
| | | filters: { |
| | | inOut: 1 |
| | | }, |
| | | StoreTypeOps, |
| | | list: [], |
| | | total: 0, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'carCodeFront', |
| | | filed: 'code', |
| | | type: 'input', |
| | | label: 'åºåºåå·', |
| | | }, |
| | | { |
| | | filed: 'platformGroupId', |
| | | filed: 'warehouseId', |
| | | type: 'select', |
| | | label: 'æå¨ä»åº', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: [] |
| | | }, |
| | | { |
| | | filed: 'carCodeFront', |
| | | type: 'input', |
| | | filed: 'type', |
| | | type: 'select', |
| | | label: 'åºåºç±»å', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: StoreTypeOps.filter(i => i.type == 0) |
| | | }, |
| | | ], |
| | | online: true |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getList() |
| | | // this.getGroupList() |
| | | this.getList() |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | |
| | | this.$refs.OutEditRef.isShowModal = true |
| | | }) |
| | | }, |
| | | handleDetail() { |
| | | handleDetail(row) { |
| | | this.isShowDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.OutDetailRef.visible = true |
| | | this.$refs.InDetailRef.visible = true |
| | | this.$refs.InDetailRef.getDetail(row.id) |
| | | }) |
| | | }, |
| | | handleEx() { }, |
| | | getGroupList() { |
| | | getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.map(i => { |
| | | return { |
| | | value: i.id, |
| | | label: i.name |
| | | } |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导åºåï¼') |
| | | .then(() => { |
| | | this.loading = true |
| | | ywOutinboundEx({ |
| | | page: this.pagination.page, |
| | | capacity: 1000000, |
| | | model: this.filters |
| | | }) |
| | | .then(response => { |
| | | this.download(response) |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: 'å
¨é¨æå°ç»' }) |
| | | .catch(() => { }) |
| | | }, |
| | | initData() { |
| | | getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.records || [] |
| | | }) |
| | | }, |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | if(page){pagination.page = page} |
| | | platformLogPage({ |
| | | ywOutinboundPage({ |
| | | model: { |
| | | ...filters, |
| | | queryStatus: '6,7,8', |
| | | beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, |
| | | beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, |
| | | ...filters |
| | | }, |
| | | sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | // sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | | page: page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | item.typeName = this.StoreTypeOps[item.type].name |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | |
| | | }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.filters = { |
| | | inOut: 1 |
| | | } |
| | | this.pagination.pageSize = 10 |
| | | this.pagination.page = 1 |
| | | this.getList() |
| | |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | <el-button @click="handleEx" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="materialId" label="èµäº§ç¼ç " min-width="100" show-overflow-tooltip /> |
| | |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import { fetchList } from '@/api/ywStock' |
| | | import { ywStockPage,ywStockPageEx } from '@/api/store/index' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | fetchList({ |
| | | ywStockPage({ |
| | | model: { |
| | | ...filters |
| | | }, |
| | |
| | | this.loading = false |
| | | }) |
| | | }, |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导åºåï¼') |
| | | .then(() => { |
| | | this.loading = true |
| | | ywStockPageEx({ |
| | | page: this.pagination.page, |
| | | capacity: 1000000, |
| | | model: this.filters |
| | | }) |
| | | .then(response => { |
| | | this.download(response) |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | .catch(() => { }) |
| | | }, |
| | | clear() { |
| | | this.filters = {} |
| | | this.pagination.pageSize = 10 |
| | |
| | | <div class="main_app"> |
| | | <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getList(1)" @clear="clear" /> |
| | | <div class="mt20"> |
| | | <el-button type="primary" @click="handleEx()" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | <el-button @click="handleEx()" v-permissions="['business:ywpatrolline:create']">导åº</el-button> |
| | | </div> |
| | | <el-table v-loading="loading" :data="list" stripe> |
| | | <el-table-column prop="platformName" label="åæ®æ¥æ" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="platformName" label="èµäº§ç¼ç " min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="platformGroupName" label="èµäº§åç§°" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeFront" label="èµäº§åç±»" min-width="100" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeBack" label="æ°é" min-width="80" show-overflow-tooltip /> |
| | | <el-table-column prop="param1" label="ç±»å" min-width="80" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="ä»åº" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="åæ®ç¼å·" min-width="120" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="å建人" min-width="80" show-overflow-tooltip /> |
| | | <el-table-column prop="workTime" label="å建æ¶é´" min-width="140" show-overflow-tooltip /> |
| | | <el-table-column prop="doneDate" label="åæ®æ¥æ" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="materialCode" label="ç©æç¼ç " min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="materialName" label="ç©æåç§°" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="carCodeFront" label="ç©æåç±»" min-width="120" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span>{{ row.categoryParentName }}/{{ row.categoryName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="carCodeBack" label="æ°é" min-width="80" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span>{{ row.stock }}{{ row.materialUnitName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="param1" label="ç±»å" min-width="70" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span v-if="row.type || row.type == 0">{{ StoreTypeOps[row.type] }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="warehouseName" label="ä»åº" min-width="90" show-overflow-tooltip /> |
| | | <el-table-column prop="code" label="åæ®ç¼å·" min-width="120" show-overflow-tooltip> |
| | | <template v-slot="{ row }"> |
| | | <span class="primaryColor">{{ row.code }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="createUserName" label="å建人" min-width="80" show-overflow-tooltip /> |
| | | <el-table-column prop="createDate" label="å建æ¶é´" min-width="140" show-overflow-tooltip /> |
| | | </el-table> |
| | | <div class="mt20"> |
| | | <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" /> |
| | |
| | | import dayjs from 'dayjs' |
| | | import duration from 'dayjs/plugin/duration' |
| | | dayjs.extend(duration) |
| | | import { platformLogPage, getPlatformGroupList } from '@/api' |
| | | import { ywOutinboundRecord, ywOutinboundRecordEx } from '@/api' |
| | | import { fetchList as getStoreList } from '@/api/ywWarehouse' |
| | | import { StoreTypeOps } from './components/config' |
| | | export default { |
| | | components: { |
| | | Pagination, |
| | |
| | | filters: {}, |
| | | list: [], |
| | | total: 0, |
| | | StoreTypeOps, |
| | | queryFormConfig: { |
| | | formItems: [ |
| | | { |
| | | filed: 'carCodeFront', |
| | | filed: 'materialCode', |
| | | type: 'input', |
| | | label: 'èµäº§ç¼ç ', |
| | | label: 'ç©æç¼ç ', |
| | | }, |
| | | { |
| | | filed: 'platformGroupId', |
| | | filed: 'warehouseId', |
| | | type: 'select', |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | label: 'æå¨ä»åº', |
| | | options: [] |
| | | }, |
| | | { |
| | | filed: 'carCodeFront', |
| | | filed: 'code', |
| | | type: 'input', |
| | | label: 'åæ®ç¼å·', |
| | | }, |
| | | { |
| | | filed: 'platformGroupId', |
| | | filed: 'type', |
| | | type: 'select', |
| | | label: 'åæ®ç±»å', |
| | | options: [] |
| | | labelCode: 'name', |
| | | valueCode: 'id', |
| | | options: StoreTypeOps |
| | | }, |
| | | { |
| | | filed: 'selDate', |
| | |
| | | }, |
| | | { |
| | | filed: 'selTime', |
| | | type: 'daterange', |
| | | type: 'datetimerange', |
| | | label: 'å建æ¶é´', |
| | | }, |
| | | ], |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | // this.getList() |
| | | // this.getGroupList() |
| | | this.getList() |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleSub() { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | handleEx() { }, |
| | | getGroupList() { |
| | | getPlatformGroupList({ queryData: 0, queryType: 0 }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.map(i => { |
| | | return { |
| | | value: i.id, |
| | | label: i.name |
| | | } |
| | | handleEx() { |
| | | this.$dialog.exportConfirm('确认导åºåï¼') |
| | | .then(() => { |
| | | this.loading = true |
| | | ywOutinboundRecordEx({ |
| | | page: this.pagination.page, |
| | | capacity: 1000000, |
| | | model: this.filters |
| | | }) |
| | | .then(response => { |
| | | this.download(response) |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false |
| | | }) |
| | | }) |
| | | // this.queryFormConfig.formItems[1].options.unshift({ value: '', label: 'å
¨é¨æå°ç»' }) |
| | | .catch(() => { }) |
| | | }, |
| | | initData() { |
| | | getStoreList({ capacity: 9999, page: 1, model: {} }).then(res => { |
| | | this.queryFormConfig.formItems[1].options = res.records || [] |
| | | }) |
| | | }, |
| | | getList(page) { |
| | | const { pagination, filters } = this |
| | | this.loading = true |
| | | platformLogPage({ |
| | | if (filters.selDate && filters.selDate.length > 0) { |
| | | filters.doneDateStart = filters.selDate[0] |
| | | filters.doneDateEnd = filters.selDate[1] |
| | | } else { |
| | | filters.doneDateStart = null |
| | | filters.doneDateEnd = null |
| | | } |
| | | if (filters.selTime && filters.selTime.length > 0) { |
| | | filters.createDateStart = filters.selTime[0] |
| | | filters.createDateEnd = filters.selTime[1] |
| | | } else { |
| | | filters.createDateStart = null |
| | | filters.createDateEnd = null |
| | | } |
| | | ywOutinboundRecord({ |
| | | model: { |
| | | ...filters, |
| | | queryStatus: '6,7,8', |
| | | beginWorkDateStart: filters.selDate && filters.selDate.length > 0 ? filters.selDate[0] : null, |
| | | beginWorkDateEnd: filters.selDate && filters.selDate.length > 0 ? filters.selDate[1] : null, |
| | | ...filters |
| | | }, |
| | | sorts: [{ direction: 'DESC', property: 'param1' }], |
| | | capacity: pagination.pageSize, |
| | | page: page || pagination.page, |
| | | }).then(res => { |
| | | this.loading = false |
| | | this.list = res.records || [] |
| | | this.list.forEach(item => { |
| | | item.inTypeTemp = item.inType == 0 ? 'æ´æç' : 'ä»¶ç' |
| | | item.taskOrigin = 'WMSè·å' |
| | | item.workTime = dayjs.duration(item.param3, 'seconds').format('Hæ¶måsç§') |
| | | }) |
| | | this.pagination.total = res.total || 0 |
| | | }, () => { |
| | | this.loading = false |