| | |
| | | export function updateById (data) { |
| | | return request.post('/business/goodsorder/updateById', data) |
| | | } |
| | | |
| | | // ä¿®æ¹ |
| | | export function orderRemark (data) { |
| | | return request.post('/business/goodsorder/orderRemark', data) |
| | | } |
| | | export function orderSendOutGoods (data) { |
| | | return request.post('/business/goodsorder/orderSendOutGoods', data) |
| | | } |
| | |
| | | sorts: [], |
| | | // å½åé¡µæ°æ® |
| | | list: [], |
| | | totalData:{}, |
| | | // å页 |
| | | pagination: { |
| | | pageIndex: 1, |
| | |
| | | .then(data => { |
| | | this.tableData.list = data.records |
| | | this.tableData.pagination.total = data.total |
| | | if (this.tableData.pagination.pageIndex === 1) { |
| | | this.tableData.totalData = data.countData || {} |
| | | } |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow |
| | | :title="title" |
| | | :visible.sync="visible" |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-tabs v-model="activeName" @tab-click="handleClick"> |
| | | <el-tab-pane label="订åä¿¡æ¯" name="first"> |
| | | <el-descriptions title="订åä¿¡æ¯" size="medium" direction="horizontal" :column="4"> |
| | | <el-descriptions-item label="订åç¼å·">{{ form.code }}</el-descriptions-item> |
| | | <el-descriptions-item label="订åç¶æ"> |
| | | <span :class="[0,1,2,5].indexOf(form.status) != -1 ? 'underway' : 'complete'"> |
| | | {{ |
| | | form.status==0 ? 'å¾
æ¯ä»' |
| | | : form.status==1 ? 'å¾
åè´§' |
| | | : form.status==2 ? 'å¾
æ¶è´§' |
| | | : form.status==3 ? '交æå®æ' |
| | | : form.status==4 ? 'å·²å
³é' : 'é¨ååè´§' |
| | | }} |
| | | </span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="ä¸åæ¶é´">{{ form.createDate }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ¯ä»æ¶é´">{{ form.payDate }}</el-descriptions-item> |
| | | <el-descriptions-item label="订åéé¢"> |
| | | <span v-if="isPlatform">ï¿¥</span>{{ form.price }}<span v-if="!isPlatform">åè±</span></el-descriptions-item> |
| | | <el-descriptions-item label="æ¯ä»è®¢åå·">{{ form.payOrderId }}</el-descriptions-item> |
| | | <el-descriptions-item label="宿æ¶é´" :span="2">{{ form.completeDate }}</el-descriptions-item> |
| | | |
| | | <el-descriptions-item label="ç¨æ·å¤æ³¨" :span="4">{{ form.memberInfo }}</el-descriptions-item> |
| | | <el-descriptions-item label="å¹³å°å¤æ³¨" :span="4">{{ form.sysInfo }}</el-descriptions-item> |
| | | |
| | | </el-descriptions> |
| | | <div style="height: 20px;"></div> |
| | | <el-descriptions title="订åä¿¡æ¯" size="medium" direction="horizontal" :column="4"> |
| | | <el-descriptions-item label="æ¶ä»¶å§å">{{ form.linkname }}</el-descriptions-item> |
| | | <el-descriptions-item label="èç³»çµè¯">{{ form.linkphone }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ¶è·å°å">{{ form.linkaddr }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | <div style="height: 20px;"></div> |
| | | <el-descriptions title="ååä¿¡æ¯" size="medium" direction="horizontal" :column="4"> |
| | | |
| | | </el-descriptions> |
| | | <el-table |
| | | :data="list" |
| | | stripe |
| | | border |
| | | > |
| | | <el-table-column prop="name" label="ååID" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="ååä¿¡æ¯" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="åç±»" align="center" width="100px"></el-table-column> |
| | | <el-table-column prop="name" label="è§æ ¼" align="center" min-width="100px"></el-table-column> |
| | | <el-table-column prop="name" :label="isPlatform?'ä»·æ ¼(å
)':'ä»·æ ¼(åè±)'" align="center" width="100px"></el-table-column> |
| | | </el-table> |
| | | <div v-if="isPlatform" class="statistics"> |
| | | <div>订åååéé¢ï¼{{ form.price }}å
</div> |
| | | <div>订å伿 éé¢ï¼-{{ form.price }}å
</div> |
| | | <div>宿¶æ¬¾ï¼{{ form.price }}å
</div> |
| | | </div> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="ç©æµä¿¡æ¯" name="second"> |
| | | <el-descriptions title="å¿«éä¿¡æ¯" size="medium" direction="horizontal" :column="4"> |
| | | <el-descriptions-item label="è¿åå·">{{ form.createDate }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç©æµå
¬å¸" :span="3">{{ form.kdName }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ¶è´§å°å" :span="4">{{ form.linkaddr }}</el-descriptions-item> |
| | | <el-descriptions-item label="åè´§æ¶é´" :span="4">{{ form.kdDate }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | <div class="kd-detail"> |
| | | <div class="kd-status">å·²ç¾æ¶</div> |
| | | <el-timeline> |
| | | <el-timeline-item |
| | | v-for="(item, index) in kdDetail" |
| | | :key="index" |
| | | hide-timestamp |
| | | :class="index==0&&'first'" |
| | | :size="index==0?'large':'normal'" |
| | | :timestamp="item.date" |
| | | > |
| | | <h4>{{ item.date }}</h4> |
| | | <p>{{ item.message }}</p> |
| | | </el-timeline-item> |
| | | </el-timeline> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <div slot="footer"></div> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | export default { |
| | | name: 'OperaGoodsOrderDetail', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow }, |
| | | data () { |
| | | |
| | | return { |
| | | activeName: '0', |
| | | isPlatform: true, |
| | | // è¡¨åæ°æ® |
| | | form: { |
| | | id: '1', |
| | | code: '256302564258', |
| | | payOrderId: '256302564258', |
| | | createDate: '2022-11-01 22:30:43', |
| | | payDate: '2022-11-01 22:30:43', |
| | | soonTime: '2022-11-03 22:30:43', |
| | | completeDate: '2022-11-03 22:30:43', |
| | | imgurl: '', |
| | | goodsName: 'å塿¯', |
| | | attr: 'ç½è²ï¼å
¶å®è§æ ¼å
å®¹ï¼ 10L', |
| | | memberInfo: 'è¿éæ¯ç¨æ·å¤æ³¨', |
| | | sysInfo: 'è¿éæ¯å¹³å°å¤æ³¨', |
| | | linkname: 'ææè±', |
| | | linkphone: '18055151023', |
| | | linkaddr: 'åå·çæé½å¸éçåºï¼éæ³è¡é䏿µ·å½é
社åºè岸è¡98å·æ©é¡ä¸æ5-2-504', |
| | | price: '2333', |
| | | status: 1, |
| | | kdCode: 'SF01021213', |
| | | kdDate: '2022-11-03 23:30:43', |
| | | kdId: 'KD21312', |
| | | kdInfo: 'è¿æ¯åè´§å¤æ³¨', |
| | | kdName: '顺丰快é', |
| | | kdUser: '00190', |
| | | }, |
| | | list: [], |
| | | kdDetail: [ |
| | | { date: '2022-11-03 23:30:43', message: 'å·²åè´§' }, |
| | | { date: '2022-11-03 23:30:43', message: 'å·²åè´§' }, |
| | | { date: '2022-11-03 23:30:43', message: 'å·²åè´§' }, |
| | | { date: '2022-11-03 23:30:43', message: 'å·²åè´§' }, |
| | | { date: '2022-11-03 23:30:43', message: 'å·²åè´§' }, |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | api: '/business/coupon', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | methods: { |
| | | open(title, target, active, isPlatform=true) { |
| | | this.title = title |
| | | this.visible = true |
| | | this.activeName = active |
| | | this.isPlatform = isPlatform |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.type = '0' |
| | | this.$refs.form.resetFields() |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | if (this.form.shopId) { |
| | | this.type = 0 |
| | | this.shops = [{ label: target.shopName, id: this.form.shopId }] |
| | | } else { |
| | | this.type = 1 |
| | | this.orgs = [{ label: target.orgName, id: this.form.orgId }] |
| | | } |
| | | }) |
| | | }, |
| | | handleClick() {} |
| | | }, |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .underway { |
| | | color: rgb(233, 165, 80) |
| | | } |
| | | .complete { |
| | | color: #ccc; |
| | | } |
| | | |
| | | .first { |
| | | ::v-deep .el-timeline-item__node { |
| | | background-color: #fff !important; |
| | | width: 8px !important; |
| | | height: 8px !important; |
| | | transform: translateX(-3px); |
| | | border: #216EEE solid 6px !important; |
| | | } |
| | | } |
| | | .kd-detail { |
| | | padding: 30px; |
| | | background-color: #f2f2f2; |
| | | .kd-status { |
| | | height: 30px; |
| | | line-height: 30px; |
| | | font-size: 20px; |
| | | font-weight: 500; |
| | | border-bottom: 1px solid #000; |
| | | margin-bottom: 20px; |
| | | } |
| | | } |
| | | .statistics { |
| | | text-align: right; |
| | | padding: 10px 5px; |
| | | font-size: 14px; |
| | | line-height: 24px; |
| | | :last-child { |
| | | color: rgb(232, 60,45); |
| | | } |
| | | } |
| | | </style> |
| | |
| | | :confirm-working="isWorking" |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" label-width="120px" label-suffix="ï¼" inline> |
| | | <el-form :model="form" ref="form" label-width="120px" label-suffix="ï¼" :rules="rules" inline> |
| | | <el-form-item label="夿³¨" prop="sysInfo"> |
| | | <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.sysInfo" placeholder="请è¾å
¥å¤æ³¨" :maxlength="5" v-trim/> |
| | | <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.sysInfo" placeholder="请è¾å
¥å¤æ³¨" :maxlength="50" v-trim/> |
| | | </el-form-item> |
| | | |
| | | |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | |
| | | form: { |
| | | id: null, |
| | | sysInfo: '' |
| | | // isdeleted: '', |
| | | // name: '', |
| | | // info: '', |
| | | // type: '', |
| | | // module: '', |
| | | // parentId: '', |
| | | // sortnum: '', |
| | | // status: '', |
| | | // imgurl: '' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | sysInfo: [ |
| | | { required: true, message: '请è¾å
¥è®¢å夿³¨ä¿¡æ¯', tigger: 'blur' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | |
| | | |
| | | created () { |
| | | this.config({ |
| | | api: '/business/labels', |
| | | api: '/business/goodsorder', |
| | | 'field.id': 'id' |
| | | }) |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | confirm () { |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) { |
| | | return |
| | | } |
| | | this.isWorking = true |
| | | this.api.orderRemark(this.form) |
| | | .then(() => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('åè´§æå') |
| | | this.$emit('success') |
| | | }).catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | // è°ç¨æ°å»ºæ¥å£ |
| | | }) |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | @import "@/assets/style/alertstyle.scss"; |
| | | |
| | | |
| | | </style> |
| | |
| | | @confirm="confirm" |
| | | > |
| | | <el-form :model="form" ref="form" :rules="rules" label-width="120px" label-suffix="ï¼" inline> |
| | | <div class="tips-style">æ¨çå¨é对订åï¼<span>{{ form.code }} </span>è¿è¡åè´§</div> |
| | | <p class="tip-warn" style="margin: 30px;"><i class="el-icon-warning"></i>æä½è¯´æï¼æ¨æ£å¨é对订åï¼<span class="red">{{ form.code }} </span>è¿è¡{{ form.status==2?'å¿«éåæ´':'åè´§' }}æä½ï¼</p> |
| | | <el-form-item label="å¿«éå
¬å¸" prop="kdId"> |
| | | <el-select |
| | | v-model="form.kdId" |
| | |
| | | clearable |
| | | placeholder="è¯·éæ©å¿«éå
¬å¸" |
| | | > |
| | | <el-option v-for="item in kd" :key="item.id" :value="item.id" :label="item.label" /> |
| | | <el-option v-for="item in kd" :key="item.id" :value="item.id" :label="item.name" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å¿«éåå·" prop="kdCode"> |
| | | <el-input v-model="form.kdCode" placeholder="请è¾å
¥å¿«éåå·" :maxlength="5" v-trim/> |
| | | <el-input v-model="form.kdCode" placeholder="请è¾å
¥å¿«éåå·" v-trim/> |
| | | </el-form-item> |
| | | <el-form-item label="åè´§å¤æ³¨" prop="kdInfo"> |
| | | <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.kdInfo" placeholder="请è¾å
¥åè´§å¤æ³¨" :maxlength="5" v-trim/> |
| | | <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 12}" v-model="form.kdInfo" placeholder="请è¾å
¥åè´§å¤æ³¨" v-trim/> |
| | | </el-form-item> |
| | | |
| | | |
| | | </el-form> |
| | | </GlobalAlertWindow> |
| | | </template> |
| | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalAlertWindow from '@/components/common/GlobalAlertWindow' |
| | | import { fetchList as kdList } from '@/api/business/labels' |
| | | import {orderSendOutGoods} from '@/api/business/goodsorder' |
| | | export default { |
| | | name: 'OperaShipmentsWindow', |
| | | extends: BaseOpera, |
| | |
| | | form: { |
| | | id: null, |
| | | code: '', |
| | | status: '', |
| | | kdId: '', |
| | | kdInfo: '', |
| | | kdCode: '', |
| | | // isdeleted: '', |
| | | // name: '', |
| | | // info: '', |
| | | // type: '', |
| | | // module: '', |
| | | // parentId: '', |
| | | // sortnum: '', |
| | | // status: '', |
| | | // imgurl: '' |
| | | kdName: '' |
| | | }, |
| | | kd: [], |
| | | // éªè¯è§å |
| | | rules: { |
| | | kdId: [ |
| | | { required: true, message: 'è¯·éæ©å¿«éå
¬å¸', tigger: 'change' } |
| | | { required: true, message: 'è¯·éæ©å¿«éå
¬å¸' } |
| | | ], |
| | | kdCode: [ |
| | | { required: true, message: '请è¾å
¥å¿«éåå·', tigger: 'blur' } |
| | | { required: true, message: '请è¾å
¥å¿«éåå·' } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | |
| | | |
| | | created () { |
| | | this.config({ |
| | | api: '/business/labels', |
| | | 'field.id': 'id' |
| | | }) |
| | | }, |
| | | mounted() { |
| | | kdList({ |
| | | capacity: 999, |
| | | model: { |
| | | type: 3 //å¿«é |
| | | } |
| | | }) |
| | | mounted () { |
| | | this.api.findAll({ status: 0, type: 17 }) |
| | | .then(res => { |
| | | this.kd = res.records |
| | | this.kd = res |
| | | }) |
| | | }, |
| | | methods: { |
| | | // ä¸ä¼ å¾ç |
| | | uploadAvatarSuccess(file) { |
| | | this.form.imgurl = file.imgurl; |
| | | this.form.imgurlfull = file.imgurlfull; |
| | | }, |
| | | }, |
| | | confirm () { |
| | | this.$refs.form.validate((valid) => { |
| | | if (!valid) { |
| | | return |
| | | } |
| | | this.isWorking = true |
| | | var kd = this.kd.find(item => item.id === this.form.kdId) |
| | | this.form.kdName = kd.name |
| | | orderSendOutGoods(this.form) |
| | | .then(() => { |
| | | this.visible = false |
| | | this.$tip.apiSuccess('æ·»å æå') |
| | | this.$emit('success') |
| | | }).catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking = false |
| | | }) |
| | | // è°ç¨æ°å»ºæ¥å£ |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | |
| | | :with-header="true" |
| | | :width="width" |
| | | :close-on-press-escape="false" |
| | | :close-on-click-modal="false" |
| | | :wrapper-closable="false" |
| | | :append-to-body="true" |
| | | @close="close" |
| | |
| | | this.srcList.push(item.url) |
| | | }) |
| | | } |
| | | |
| | | console.log("==================srcList=",this.srcList); |
| | | } |
| | | |
| | |
| | | console.log(this.fileList); |
| | | let tempIndex = this.realList.findIndex(item => item.fileurl === file.fileurl) |
| | | // debugger |
| | | this.realList.splice(tempIndex, 1) |
| | | // this.realList.splice(tempIndex, 1) |
| | | this.fileList.splice(tempIndex, 1) |
| | | this.srcList.splice(tempIndex, 1) |
| | | // this.srcList.splice(tempIndex, 1) |
| | | |
| | | }, |
| | | }, |
| | |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <!-- 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§ --> |
| | | <el-tabs v-model="status" @tab-click="handleClick"> |
| | | <el-tab-pane label="å
¨é¨è®¢å" name="10"></el-tab-pane> |
| | | <el-tab-pane label="å¾
æ¯ä»" name="0"></el-tab-pane> |
| | | <el-tab-pane label="å¾
åè´§" name="1"></el-tab-pane> |
| | | <el-tab-pane label="å¾
æ¶è´§" name="2"></el-tab-pane> |
| | | <el-tab-pane label="交æå®æ" name="3"></el-tab-pane> |
| | | <el-tab-pane label="交æå
³é" name="4"></el-tab-pane> |
| | | <el-tab-pane label="åæ¶ç«" name="9"></el-tab-pane> |
| | | <el-tab-pane |
| | | v-for="tab in statusList" |
| | | :key="tab.name" |
| | | :name="tab.name" |
| | | > |
| | | <template #label> |
| | | <span>{{ tab.label }}</span> |
| | | <el-badge |
| | | v-if="tab.count > 0" |
| | | :value="tab.count" |
| | | class="tab-badge" |
| | | /> |
| | | </template> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | <el-form-item label="订åç¼å·" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥è®¢åç¼å·" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥è®¢åç¼å·" type="number" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨æ·ä¿¡æ¯" prop="information"> |
| | | <el-input v-model="searchForm.information" placeholder="请è¾å
¥æµç§°/ææºå·" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="æ¶è´§äºº" prop="nickName"> |
| | | <el-input v-model="searchForm.nickName" placeholder="请è¾å
¥å§å/ææºå·" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="è®¢åæ¶é´" prop="createDate"> |
| | | <el-date-picker |
| | | v-model="createDate" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | @change="selectDate" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å¬åè´§" prop="isSoon"> |
| | | <el-select |
| | | v-model="searchForm.isSoon" |
| | | placeholder="è¯·éæ©æ¯å¦å¬åè´§" |
| | | @change="search" |
| | | > |
| | | <el-option :key="0" :value="0" label="å¦"></el-option> |
| | | <el-option :key="1" :value="1" label="æ¯"></el-option> |
| | | <el-form-item label="åè´§æ¹å¼" prop="receiveType"> |
| | | <el-select v-model="searchForm.receiveType" placeholder="è¯·éæ©åè´§æ¹å¼" clearable @change="search" > |
| | | <el-option :key="0" :value="0" label="å¿«éé
é"></el-option> |
| | | <el-option :key="1" :value="1" label="èªæ"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="å½å±ç»éå" prop="shopName"> |
| | | <el-input v-model="searchForm.shopName" placeholder="请è¾å
¥ç»éååç§°" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯ä»åå·" prop="payOrderId"> |
| | | <el-input v-model="searchForm.payOrderId" placeholder="请è¾å
¥æ¯ä»åå·" @keypress.enter.native="search"></el-input> |
| | | <el-input v-model="searchForm.payOrderId" placeholder="请è¾å
¥æ¯ä»åå·" clearable @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | <!-- <el-form-item label="æ´æ°äººç¼ç " prop="editor"> |
| | | <el-input v-model="searchForm.editor" placeholder="请è¾å
¥æ´æ°äººç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å é¤0å¦ 1æ¯" prop="isdeleted"> |
| | | <el-input v-model="searchForm.isdeleted" placeholder="请è¾å
¥æ¯å¦å é¤0å¦ 1æ¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="searchForm.remark" placeholder="请è¾å
¥å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="订åç¼å·" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请è¾å
¥è®¢åç¼å·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="订åå®ä»ä»·æ ¼ï¼å
/åè±ï¼" prop="price"> |
| | | <el-input v-model="searchForm.price" placeholder="请è¾å
¥è®¢åå®ä»ä»·æ ¼ï¼å
/åè±ï¼" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ååæ»æ°é" prop="goodsNum"> |
| | | <el-input v-model="searchForm.goodsNum" placeholder="请è¾å
¥ååæ»æ°é" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸å人ç¼ç ï¼å
³èmember表ï¼" prop="memberId"> |
| | | <el-input v-model="searchForm.memberId" placeholder="请è¾å
¥ä¸å人ç¼ç ï¼å
³èmember表ï¼" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶è´§å°åç¼ç ï¼å
³èaddr表ï¼" prop="addrId"> |
| | | <el-input v-model="searchForm.addrId" placeholder="请è¾å
¥æ¶è´§å°åç¼ç ï¼å
³èaddr表ï¼" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶è´§äººå§å" prop="linkname"> |
| | | <el-input v-model="searchForm.linkname" placeholder="请è¾å
¥æ¶è´§äººå§å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶è´§äººçµè¯" prop="linkphone"> |
| | | <el-input v-model="searchForm.linkphone" placeholder="请è¾å
¥æ¶è´§äººçµè¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¶è´§å°å" prop="linkaddr"> |
| | | <el-input v-model="searchForm.linkaddr" placeholder="请è¾å
¥æ¶è´§å°å" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§" prop="status"> |
| | | <el-input v-model="searchForm.status" placeholder="请è¾å
¥ç¶æ 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å·²è¯ä»· 0æªè¯ä»· 1å·²è¯ä»·" prop="isComment"> |
| | | <el-input v-model="searchForm.isComment" placeholder="请è¾å
¥æ¯å¦å·²è¯ä»· 0æªè¯ä»· 1å·²è¯ä»·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯ä»ç¶æ 0æªæ¯ä» 1å·²æ¯ä»" prop="payStatus"> |
| | | <el-input v-model="searchForm.payStatus" placeholder="请è¾å
¥æ¯ä»ç¶æ 0æªæ¯ä» 1å·²æ¯ä»" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯ä»æ¶é´" prop="payDate"> |
| | | <el-date-picker v-model="searchForm.payDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥æ¯ä»æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¯ä»æ¹å¼ 0微信æ¯ä» 1çº¿ä¸æ¯ä»" prop="payMethod"> |
| | | <el-input v-model="searchForm.payMethod" placeholder="请è¾å
¥æ¯ä»æ¹å¼ 0微信æ¯ä» 1çº¿ä¸æ¯ä»" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¿«éåå·" prop="kdCode"> |
| | | <el-input v-model="searchForm.kdCode" placeholder="请è¾å
¥å¿«éåå·" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¿«éåç§°" prop="kdName"> |
| | | <el-input v-model="searchForm.kdName" placeholder="请è¾å
¥å¿«éåç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¿«éç¼ç ï¼å
³èlabels表ï¼" prop="kdId"> |
| | | <el-input v-model="searchForm.kdId" placeholder="请è¾å
¥å¿«éç¼ç ï¼å
³èlabels表ï¼" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="ç¨æ·å¤æ³¨" prop="memberInfo"> |
| | | <el-input v-model="searchForm.memberInfo" placeholder="请è¾å
¥ç¨æ·å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å¹³å°å¤æ³¨" prop="sysInfo"> |
| | | <el-input v-model="searchForm.sysInfo" placeholder="请è¾å
¥å¹³å°å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åæ¶æ¶é´" prop="cancelDate"> |
| | | <el-date-picker v-model="searchForm.cancelDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥åæ¶æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="åæ¶äºº" prop="cancelUser"> |
| | | <el-input v-model="searchForm.cancelUser" placeholder="请è¾å
¥åæ¶äºº" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="忶夿³¨" prop="cancelInfo"> |
| | | <el-input v-model="searchForm.cancelInfo" placeholder="请è¾å
¥åæ¶å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åè´§æ¶é´" prop="kdDate"> |
| | | <el-date-picker v-model="searchForm.kdDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥åè´§æ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="åè´§å¤æ³¨" prop="kdInfo"> |
| | | <el-input v-model="searchForm.kdInfo" placeholder="请è¾å
¥åè´§å¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="å货人ç¼ç ï¼å
³èsystem_user表ï¼" prop="kdUser"> |
| | | <el-input v-model="searchForm.kdUser" placeholder="请è¾å
¥å货人ç¼ç ï¼å
³èsystem_user表ï¼" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="宿æ¶é´" prop="doneDate"> |
| | | <el-date-picker v-model="searchForm.doneDate" value-format="yyyy-MM-dd" placeholder="请è¾å
¥å®ææ¶é´" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="宿夿³¨" prop="doneInfo"> |
| | | <el-input v-model="searchForm.doneInfo" placeholder="请è¾å
¥å®æå¤æ³¨" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ¯å¦å·²å®å 0å¦ 1æ¯" prop="isAftersale"> |
| | | <el-input v-model="searchForm.isAftersale" placeholder="请è¾å
¥æ¯å¦å·²å®å 0å¦ 1æ¯" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="订åç±»å 0å¹³å°åå 1åè±åå 2åå¡è®¡åç¼ç " prop="type"> |
| | | <el-input v-model="searchForm.type" placeholder="请è¾å
¥è®¢åç±»å 0å¹³å°åå 1åè±åå 2åå¡è®¡åç¼ç " @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="伿 éé¢" prop="couponPrice"> |
| | | <el-input v-model="searchForm.couponPrice" placeholder="请è¾å
¥ä¼æ éé¢" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="伿 å¸ç¼ç ï¼å
³èMEMBER_COUPON表ï¼" prop="couponId"> |
| | | <el-input v-model="searchForm.couponId" placeholder="请è¾å
¥ä¼æ å¸ç¼ç ï¼å
³èMEMBER_COUPON表ï¼" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="åå¡è®¡å订åå½¢å¼ 0æ°å¢ 1å»¶é¿" prop="planOrderType"> |
| | | <el-input v-model="searchForm.planOrderType" placeholder="请è¾å
¥åå¡è®¡å订åå½¢å¼ 0æ°å¢ 1å»¶é¿" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> --> |
| | | <div class="date-style" style="display: inline"> |
| | | <el-form-item label="è®¢åæ¶é´" prop="starttime" > |
| | | <el-date-picker |
| | | style="width: 160px" |
| | | clearable |
| | | @change="search" |
| | | v-model="searchForm.starttime" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | range-separator="è³" |
| | | placeholder="å¼å§æ¶é´" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="-" label-width="10px" prop="endtime" > |
| | | <el-date-picker |
| | | style="width: 160px" |
| | | clearable |
| | | v-model="searchForm.endtime" |
| | | type="datetime" |
| | | @change="search" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | range-separator="è³" |
| | | placeholder="æªæ¢æ¶é´" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | </div> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:goodsorder:exportExcel']" @click="exportExcel">导åº</el-button> |
| | |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <div v-for="item in list" :key="id" class="order-detail"> |
| | | <div class="order-title-message"> |
| | | <div class="base-message"> |
| | | <div class="date">{{ item.createDate }}</div> |
| | | <div>订åç¼å·ï¼<span>{{ item.code }}</span></div> |
| | | <div v-for="item in tableData.list" :key="'id_'+item.id" class="order-detail"> |
| | | <div class="order-title-message" > |
| | | <div class="base-message" > |
| | | <div class="date" >è®¢åæ¶é´ï¼{{ item.createDate }}</div> |
| | | <div class="date" >订åç¼å·ï¼<span @click="$refs.operaGoodsOrderDetail.open('订å详æ
', item, 'first')" style="cursor: pointer;">{{ item.code }}</span></div> |
| | | <div v-if="item.distributionShopId">ç»éåï¼{{ item.shopName || ''}}</div> |
| | | </div> |
| | | <div class="soon-style">{{ `ç¨æ·äº${item.soonTime}å¬åè´§` }}</div> |
| | | <div> |
| | | <span v-if="item.status ==0" class="orange">å¾
æ¯ä»</span> |
| | | <span v-if="item.status ==1" class="orange">{{item.receiveType==1?'å¾
èªæ':'å¾
åè´§'}}</span> |
| | | <span v-if="item.status ==2" class="orange">å¾
æ¶è´§</span> |
| | | <span v-if="item.status ==3" class="grey">交æå®æ</span> |
| | | <span v-if="item.status ==4" class="grey">å·²å
³é</span> |
| | | <span v-if="item.status ==6" class="grey">已鿬¾</span> |
| | | </div> |
| | | </div> |
| | | <div class="detail-message"> |
| | | <div class="goods-message right-border"> |
| | | <div class="goods-base-message"> |
| | | <el-image |
| | | style="width: 90px; height: 90px; border-radius: 2px;" |
| | | :src="item.imgurl" |
| | | :preview-src-list="[item.imgurl]" |
| | | ></el-image> |
| | | <div class="message"> |
| | | <div>{{ item.goodsName }}</div> |
| | | <div class="attr">è§æ ¼ï¼{{ item.attr }}</div> |
| | | <div class="attr">ä»·æ ¼ï¼{{ item.price }}</div> |
| | | <div class="goods-base-message" :key="item.id+'_'+goods.id" v-for="goods in item.goodsorderDetailList"> |
| | | <div style="width: 60px; height: 60px;"> |
| | | <el-image |
| | | style="width: 60px; height: 60px; border-radius: 2px;" |
| | | :src="goods.imgurl" |
| | | :preview-src-list="[goods.imgurl]" |
| | | ></el-image> |
| | | </div> |
| | | <div class="message" style=""> |
| | | <div class="name">{{ goods.name }}</div> |
| | | <div class="attr">ï¿¥{{ goods.goodsNum }}</div> |
| | | </div> |
| | | </div> |
| | | <div v-if="item.memberInfo" class="mark">ç¨æ·å¤æ³¨ï¼{{ item.memberInfo }}</div> |
| | | <div v-if="item.sysInfo" class="mark">å¹³å°å¤æ³¨ï¼{{ item.sysInfo }}</div> |
| | | <div class="mark" v-if="item.sysInfo&& item.sysInfo.length" >夿³¨ï¼{{item.sysInfo}}</div> |
| | | </div> |
| | | <div class="member-message right-border"> |
| | | <div>{{ item.linkname }}</div> |
| | | <div>{{ item.linkphone }}</div> |
| | | <div class="el-icon-user" style="padding: 5px 5px;">{{ item.linkname }}</div> |
| | | <div class="el-icon-phone-outline" style="padding: 10px 5px;color: #777;font-size: 13px;">{{ item.linkphone }}</div> |
| | | </div> |
| | | <div class="address-message right-border">{{ item.linkaddr }}</div> |
| | | <div class="price-message right-border">ï¿¥{{ item.price }}</div> |
| | | <div class="status-message right-border"> |
| | | <!-- // 0å¾
æ¯ä» 1å¾
åè´§ 2å¾
æ¶è´§ 3交æå®æ 4å·²å
³é 5é¨ååè´§ --> |
| | | <div :class="[0,1,2,5].indexOf(item.status) != -1 ? 'underway' : 'complete'"> |
| | | {{ |
| | | item.status==0 ? 'å¾
æ¯ä»' |
| | | : item.status==1 ? 'å¾
åè´§' |
| | | : item.status==2 ? 'å¾
æ¶è´§' |
| | | : item.status==3 ? '交æå®æ' |
| | | : item.status==4 ? 'å·²å
³é' : 'é¨ååè´§' |
| | | }} |
| | | </div> |
| | | <el-button style="color: #666; font-size: 16px;" type="text" @click="$refs.operaGoodsOrderDetail.open('订å详æ
', item, 'first')">订å详æ
</el-button> |
| | | <div></div> |
| | | <el-button style="color: #666; font-size: 16px;" type="text" @click="$refs.operaGoodsOrderDetail.open('ç©æµè¯¦æ
', item, 'second')">ç©æµè¯¦æ
</el-button> |
| | | <div class="address-message right-border right-border" style="padding-top: 15px;" > |
| | | <div class="underway el-icon-sell" >{{item.receiveType==1?'å°åºèªæ':'å¿«éé
é'}} </div> |
| | | <div class=" el-icon-add-location" v-if="item.receiveType!=1">{{ item.linkaddr }}</div> |
| | | </div> |
| | | <div class="price-message right-border"> |
| | | <div class="underway" >è®¢åæ»ä»·ï¼ï¿¥{{ (item.totalPrice||0).toFixed(2) }}</div> |
| | | <div class="price-info">å忻价ï¼ï¿¥{{ ((item.totalPrice||0)-(item.price || 0)).toFixed(2)}}</div> |
| | | <div class="price-info">ç©æµè¿è´¹ï¼ï¿¥{{ (item.mailPrice || 0).toFixed(2)}}</div> |
| | | <div class="price-info">ç§¯åæµæ£ï¼-ï¿¥{{ (item.integral || 0 ).toFixed(2)}}</div> |
| | | <div class="price-info">伿 éé¢ï¼-ï¿¥{{ (item.couponPrice).toFixed(2) }}</div> |
| | | <div class="price-info">å®ä»éé¢ï¼<span class="red" style="font-weight: 600">ï¿¥{{ (item.price).toFixed(2) }}</span></div> |
| | | </div> |
| | | <div class="action"> |
| | | <el-button v-if="item.status==1" style="font-size: 16px; width: 80%;" type="primary" @click="$refs.operaShipmentsWindow.open('åè´§', item)">åè´§</el-button> |
| | | <el-button v-if="item.status==1 && item.receiveType!=1" style=" width: 80%;" type="primary" @click="$refs.operaShipmentsWindow.open('åè´§', item)">åè´§</el-button> |
| | | <div></div> |
| | | <el-button v-if="item.status<2" style="color: #666; font-size: 16px;" type="text" @click="cancelOrder(item)">åæ¶è®¢å</el-button> |
| | | <el-button v-if="item.status == 0" style="color: red; " type="text" @click="cancelOrder(item)">åæ¶è®¢å</el-button> |
| | | <div></div> |
| | | <el-button style="color: #666; font-size: 16px;" type="text" @click="$refs.operaOrderMarkWindow.open(item.sysInfo.length?'ç¼è¾å¤æ³¨':'æ·»å 夿³¨', item)">夿³¨</el-button> |
| | | <el-button v-if="item.status == 3" style="color: red " type="text" @click="cancelOrder(item)">订å鿬¾</el-button> |
| | | <div></div> |
| | | <el-button v-if="item.status==2 && item.receiveType!=1" style="color: #666; " type="text" @click="$refs.operaShipmentsWindow.open('å¿«éä¿¡æ¯åæ´', item)">å¿«éåæ´</el-button> |
| | | <div></div> |
| | | <el-button style="color: #666; " type="text" @click="$refs.operaOrderMarkWindow.open(item.sysInfo && item.sysInfo.length?'ç¼è¾å¤æ³¨':'æ·»å 夿³¨', item)"> |
| | | {{ item.sysInfo && item.sysInfo.length?'ä¿®æ¹å¤æ³¨':'æ·»å 夿³¨' }}</el-button> |
| | | <div></div> |
| | | <el-button style="color: #216EEE; " type="text" @click="$refs.operaGoodsOrderDetail.open('订å详æ
', item, 'first')">æ¥ç详æ
</el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | |
| | | <el-table-column |
| | | v-if="containPermissions(['business:goodsorder:update', 'business:goodsorder:delete'])" |
| | | label="æä½" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaGoodsorderWindow.open('ç¼è¾åå订åä¿¡æ¯è¡¨', row)" icon="el-icon-edit" v-permissions="['business:goodsorder:update']">ç¼è¾</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> --> |
| | | <div style="width: 100%;text-align: center;padding: 50px;color: #999;font-size: 12px;" v-if="!tableData.pagination ||!tableData.pagination.total">ææ æ°æ®</div> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <OperaShipmentsWindow ref="operaShipmentsWindow" @success="handlePageChange"/> |
| | | <OperaShipmentsWindow ref="operaShipmentsWindow" @success="search"/> |
| | | <OperaOrderMarkWindow ref="operaOrderMarkWindow" @success="handlePageChange"/> |
| | | <OperaGoodsOrderDetail ref="operaGoodsOrderDetail"/> |
| | | </TableLayout> |
| | |
| | | status: '10', |
| | | createDate: [], |
| | | id: '', |
| | | statusList: [{ name: '10', label: 'å
¨é¨è®¢å', count: 0 }, |
| | | { name: '0', label: 'å¾
æ¯ä»', count: 0 }, |
| | | { name: '1', label: 'å¾
åè´§/å¾
èªæ', count: 0 }, |
| | | { name: '2', label: 'å¾
æ¶è´§', count: 0 }, |
| | | { name: '3', label: '交æå®æ', count: 0 }, |
| | | { name: '6', label: '已鿬¾', count: 0 }, |
| | | { name: '4', label: '交æå
³é', count: 0 }], |
| | | // æç´¢ |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | remark: '', |
| | | receiveType: '', |
| | | shopName: '', |
| | | goodsName: '', |
| | | code: '', |
| | | price: '', |
| | | goodsNum: '', |
| | | memberId: '', |
| | | addrId: '', |
| | | linkname: '', |
| | | linkphone: '', |
| | | linkaddr: '', |
| | | status: '', |
| | | isComment: '', |
| | | payStatus: '', |
| | | payDate: '', |
| | | payOrderId: '', |
| | | payMethod: '', |
| | | kdCode: '', |
| | | kdName: '', |
| | | kdId: '', |
| | | memberInfo: '', |
| | | sysInfo: '', |
| | | cancelDate: '', |
| | | cancelUser: '', |
| | | cancelInfo: '', |
| | | kdDate: '', |
| | | kdInfo: '', |
| | | kdUser: '', |
| | | doneDate: '', |
| | | doneInfo: '', |
| | | isAftersale: '', |
| | | type: '0', // 0å¹³å°åå 1åè±åå 2åå¡è®¡å |
| | | couponPrice: '', |
| | | couponId: '', |
| | | planOrderType: '' |
| | | nickName: '', |
| | | starttime: null, |
| | | enttime: null |
| | | }, |
| | | list: [ |
| | | { |
| | | id: '1', |
| | | code: '256302564258', |
| | | payOrderId: '256302564258', |
| | | createDate: '2022-11-01 22:30:43', |
| | | payDate: '2022-11-01 22:30:59', |
| | | soonTime: '2022-11-03 22:30:43', |
| | | completeDate: '2022-11-05 22:30:43', |
| | | imgurl: '', |
| | | goodsName: 'å塿¯', |
| | | attr: 'ç½è²ï¼å
¶å®è§æ ¼å
å®¹ï¼ 10L', |
| | | memberInfo: 'è¿éæ¯ç¨æ·å¤æ³¨', |
| | | sysInfo: 'è¿éæ¯å¹³å°å¤æ³¨', |
| | | linkname: 'ææè±', |
| | | linkphone: '18055151023', |
| | | linkaddr: 'åå·çæé½å¸éçåºï¼éæ³è¡é䏿µ·å½é
社åºè岸è¡98å·æ©é¡ä¸æ5-2-504', |
| | | price: '2333', |
| | | status: 1, |
| | | kdCode: 'SF01021213', |
| | | kdDate: '2022-11-03 23:30:43', |
| | | kdId: 'KD21312', |
| | | kdInfo: 'è¿æ¯åè´§å¤æ³¨', |
| | | kdName: '顺丰快é', |
| | | kdUser: '00190', |
| | | |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | created () { |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | selectDate(v) { |
| | | handlePageChange (pageIndex) { |
| | | this.tableData.pagination.pageIndex = pageIndex || this.tableData.pagination.pageIndex |
| | | this.isWorking.search = true |
| | | this.api.fetchList({ |
| | | page: this.tableData.pagination.pageIndex, |
| | | capacity: this.tableData.pagination.pageSize, |
| | | model: this.searchForm, // é宿¨¡å¼åæ´ |
| | | sorts: this.tableData.sorts |
| | | }) |
| | | .then(data => { |
| | | this.tableData.list = data.records || [] |
| | | this.tableData.pagination.total = data.total || 0 |
| | | if (this.tableData.pagination.pageIndex === 1) { |
| | | var totalData = data.countData || {} |
| | | this.statusList[1].count = totalData.waitPayNum || 0 |
| | | this.statusList[2].count = totalData.waitKdNum || 0 |
| | | this.statusList[3].count = totalData.waitDoneNum || 0 |
| | | } |
| | | }) |
| | | .catch(e => { |
| | | this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking.search = false |
| | | }) |
| | | }, |
| | | selectDate (v) { |
| | | this.searchForm.startDate = v[0] |
| | | this.searchForm.endDate = v[1] |
| | | this.search() |
| | | }, |
| | | reset () { |
| | | this.createDate = [] |
| | | this.searchForm.startDate = '' |
| | | this.searchForm.endDate = '' |
| | | this.searchForm.starttime = '' |
| | | this.searchForm.enttime = '' |
| | | this.$refs.searchForm.resetFields() |
| | | this.search() |
| | | }, |
| | | handleClick(table, val) { |
| | | this.$refs.searchForm.resetFields() |
| | | if (this.status==9) { |
| | | this.searchForm.isdeleted=1 |
| | | this.searchForm.status='' |
| | | } else if (this.status==10) { |
| | | this.searchForm.status='' |
| | | handleClick (table, val) { |
| | | // this.$refs.searchForm.resetFields() |
| | | if (this.status == 9) { |
| | | this.searchForm.isdeleted = 1 |
| | | this.searchForm.status = '' |
| | | } else if (this.status == 10) { |
| | | this.searchForm.status = '' |
| | | } else { |
| | | this.searchForm.isdeleted=0 |
| | | this.searchForm.status=this.status |
| | | this.searchForm.isdeleted = 0 |
| | | this.searchForm.status = this.status |
| | | } |
| | | this.search() |
| | | }, |
| | | cancelOrder(item) { |
| | | cancelOrder (item) { |
| | | this.$dialog.cancelOrder(`ç¡®å®åæ¶è®¢åï¼${item.code}ï¼`) |
| | | .then(() => { |
| | | |
| | | }) |
| | | } |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .tab-badge{ |
| | | color: green; |
| | | } |
| | | .order-detail { |
| | | font-size: 14px; |
| | | color: #666; |
| | | margin-bottom: 10px; |
| | | .order-title-message { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 8px; |
| | | padding: 10px 20px; |
| | | font-weight: 500; |
| | | box-sizing: border-box; |
| | | background-color: #f2f2f2; |
| | | .base-message { |
| | | display: flex; |
| | | font-size: 14px; |
| | | color: #999; |
| | | color: #333; |
| | | .date { |
| | | width: 150px; |
| | | width: auto; |
| | | margin-right: 100px; |
| | | } |
| | | span { |
| | |
| | | .goods-base-message { |
| | | display: flex; |
| | | margin-bottom: 10px; |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #f2f2f2; |
| | | .message { |
| | | flex-basis: content-box; |
| | | display: flex;width: 100%; |
| | | margin-left: 10px; |
| | | font-size: 16px; |
| | | .attr { |
| | | font-size: 13px; |
| | | .name { |
| | | flex: 3; |
| | | display: -webkit-box; |
| | | -webkit-box-orient: vertical; |
| | | -webkit-line-clamp: 2; |
| | | overflow: hidden; |
| | | max-height: 40px; |
| | | } |
| | | .attr{ |
| | | padding-top: 10px; |
| | | text-align: right; |
| | | flex: 1; |
| | | padding-right: 30px; |
| | | font-size: 12px; |
| | | color: #666; |
| | | } |
| | | } |
| | | } |
| | | .mark { |
| | | margin-bottom: 5px; |
| | | color: rgb(235, 80, 50); |
| | | font-size: 13px; |
| | | color: rgb(235, 80, 50); |
| | | } |
| | | } |
| | | .member-message { |
| | | flex: 0.4; |
| | | |
| | | font-size: 14px; |
| | | :last-child { |
| | | margin-top: 5px; |
| | | font-size: 13px; |
| | | } |
| | | } |
| | | .address-message { |
| | | flex: 0.6; |
| | | display: -webkit-box; |
| | | -webkit-box-orient: vertical; |
| | | overflow: hidden; |
| | | .underway { |
| | | display: block; |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #f2f2f2; |
| | | color: #71b247; |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | .price-message { |
| | | flex: 0.5; |
| | | font-size: 18px; |
| | | flex: 0.6; |
| | | font-weight: 600; |
| | | text-align: center; |
| | | .underway { |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #f2f2f2; |
| | | color: rgb(233, 165, 80); |
| | | margin-bottom: 10px; |
| | | } |
| | | .price-info { |
| | | text-align: left; |
| | | width: 100%; |
| | | font-weight: normal; |
| | | color: #777; |
| | | font-size: 13px; |
| | | } |
| | | } |
| | | .status-message { |
| | | flex: 0.4; |
| | | text-align: center; |
| | | .underway { |
| | | padding-bottom: 10px; |
| | | border-bottom: 1px solid #f2f2f2; |
| | | color: rgb(233, 165, 80) |
| | | } |
| | | |
| | | .complete { |
| | | color: #ccc; |
| | | } |
| | | } |
| | | .action { |
| | | flex: 0.6; |
| | | flex: 0.5; |
| | | box-sizing: border-box; |
| | | padding: 10px; |
| | | text-align: center; |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaLabelExpressWindow from '@/components/business/OperaLabelExpressWindow' |
| | | import {updateStatusById} from "@/api/business/labels"; |
| | | export default { |
| | | name: 'ProductLabel', |
| | | extends: BaseTable, |
| | |
| | | public enum UserActionType { |
| | | CHANGE_SHOP(0, "ç»éåæ´æ¢","ç±ã${param1}ãäºã${param2}ãï¼è¿è¡ãç»éåæ´æ¢ã" ), |
| | | CHANGE_SALETYPE(1, "ç»éåæ´æ¢é宿¨¡å¼","ç±ã${param1}ãäºã${param2}ãï¼è¿è¡ãé宿¨¡å¼åæ´ã" ), |
| | | CHANGE_ORDER_KD(2, "订åå¿«éæ´æ¢","ç±ã${param1}ãäºã${param2}ãï¼è¿è¡ã订åå¿«éæ´æ¢ã;${param3}" ), |
| | | ; |
| | | |
| | | // æååé |
| | |
| | | @ExcelColumn(name="è系人å°å" ,index =8 ,width = 10) |
| | | private String linkaddr; |
| | | |
| | | @ApiModelProperty(value = "è®¢åæ»ä»·æ ¼", example = "1") |
| | | @ApiModelProperty(value = "è®¢åæ»ä»·æ ¼(å
å«è¿è´¹)", example = "1") |
| | | private BigDecimal totalPrice; |
| | | |
| | | @ApiModelProperty(value = "订åå®ä»ä»·æ ¼ï¼å
/åè±ï¼", example = "1") |
| | |
| | | @ApiModelProperty(value = "è®¢åæ»æ° ") |
| | | @TableField(exist = false) |
| | | private Long orderCount; |
| | | @ApiModelProperty(value = "å¾
æ¯ä»æ»æ° ") |
| | | @TableField(exist = false) |
| | | private Integer waitPayNum; |
| | | @ApiModelProperty(value = "å¾
åè´§æ»æ° ") |
| | | @TableField(exist = false) |
| | | private Integer waitKdNum; |
| | | @ApiModelProperty(value = "å¾
æ¶è´§æ»æ° ") |
| | | @TableField(exist = false) |
| | | private Integer waitDoneNum; |
| | | @ApiModelProperty(value = "订åååæ»æ° ") |
| | | @TableField(exist = false) |
| | | private Long goodsCount; |
| | |
| | | @ApiModelProperty(value = "æ¥æ ") |
| | | @TableField(exist = false) |
| | | private String everyDay; |
| | | @ApiModelProperty(value = "ç»éååç§° ") |
| | | @TableField(exist = false) |
| | | private String shopName; |
| | | |
| | | } |
| | |
| | | private String lablesName; |
| | | |
| | | |
| | | |
| | | @ApiModelProperty(value = "åå主å¾") |
| | | @TableField(exist = false) |
| | | private String goodsImgurl; |
| | |
| | | @Autowired |
| | | private GoodsorderMapper goodsorderMapper; |
| | | @Autowired |
| | | private UserActionMapper userActionMapper; |
| | | @Autowired |
| | | private ActivitySignMapper activitySignMapper; |
| | | @Autowired |
| | | private AftersaleMapper aftersaleMapper; |
| | |
| | | @Override |
| | | public void orderSendOutGoods(Goodsorder goodsorder) { |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | if(StringUtils.isBlank(goodsorder.getKdCode()) ||StringUtils.isBlank(goodsorder.getKdName())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Goodsorder query=goodsorderMapper.selectById(goodsorder.getId()); |
| | | if(query==null){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),ResponseStatus.DATA_EMPTY.getMessage()); |
| | | } |
| | | if(!Constants.equalsInteger(query.getStatus(),Constants.ONE)){ |
| | | if(!Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.PAY_DONE.getKey()) |
| | | && !Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"订åç¶æå·²æµè½¬ï¼è¯·å·æ°é¡µé¢ï¼"); |
| | | } |
| | | goodsorder.setEditDate(new Date()); |
| | | goodsorder.setEditor(user.getId()); |
| | | goodsorder.setKdDate(new Date()); |
| | | goodsorder.setKdUser(user.getId()); |
| | | goodsorder.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey()); |
| | | goodsorderMapper.updateById(goodsorder); |
| | | if(!Constants.equalsInteger(query.getReceiveType(),Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该订åæå®¢æ·å°åºèªæï¼æ éåè´§æä½ï¼"); |
| | | } |
| | | Goodsorder update = new Goodsorder(); |
| | | update.setId(goodsorder.getId()); |
| | | update.setKdName(goodsorder.getKdName()); |
| | | update.setKdCode(goodsorder.getKdCode()); |
| | | update.setKdInfo(goodsorder.getKdInfo()); |
| | | update.setKdId(goodsorder.getKdId()); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(user.getId()); |
| | | update.setKdDate(new Date()); |
| | | update.setKdUser(user.getId()); |
| | | update.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey()); |
| | | goodsorderMapper.updateById(update); |
| | | |
| | | // TODO åéå¾®ä¿¡æ¨¡æ¿æ¶æ¯ |
| | | if(Constants.equalsInteger(query.getStatus(), Constants.OrderStatus.WAIT_RECEIVE.getKey())){ |
| | | //妿æ¯å¿«éåæ´ |
| | | UserActionServiceImpl.saveUserActionBiz(user,query.getId(), |
| | | Constants.UserActionType.CHANGE_ORDER_KD, |
| | | userActionMapper, |
| | | update.getEditDate(), |
| | | new String[]{user.getUsername(), DateUtil.getPlusTime2(update.getEditDate()),"夿³¨ï¼"+goodsorder.getKdInfo()}, |
| | | JSONObject.toJSONString(update) , |
| | | query.getKdName()+"(åå·ï¼"+query.getKdCode()+")", |
| | | goodsorder.getKdName()+"(åå·ï¼"+goodsorder.getKdCode()+")"); |
| | | |
| | | } |
| | | |
| | | /* // TODO åéå¾®ä¿¡æ¨¡æ¿æ¶æ¯ |
| | | Member member=memberMapper.selectById(query.getMemberId()); |
| | | MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO); |
| | |
| | | queryWrapper.orderByDesc(GoodsorderDetail::getCreateDate); |
| | | queryWrapper.last("limit 1"); |
| | | GoodsorderDetail goodsorderDetail=goodsorderDetailMapper.selectOne(queryWrapper); |
| | | SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member); |
| | | SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member);*/ |
| | | } |
| | | |
| | | |
| | |
| | | if(Objects.nonNull(result)){ |
| | | MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(GoodsorderDetail.class); |
| | | queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName); |
| | | queryWrapper.selectAs(Labels::getName,GoodsorderDetail::getLablesName); |
| | | queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(GoodsorderDetail::getOrderId,result.getId()); |
| | | queryWrapper.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId); |
| | | queryWrapper.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId); |
| | | queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getCategoryId); |
| | | queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId); |
| | | List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailMapper.selectList(queryWrapper); |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode(); |
| | | |
| | |
| | | IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | |
| | | queryWrapper.selectAll(Goodsorder.class); |
| | | queryWrapper.selectAs(Member::getNickname,Goodsorder::getNickName); |
| | | queryWrapper.selectAs(Member::getPhone,Goodsorder::getPhone); |
| | | queryWrapper.selectAs(Addr::getAddr,Goodsorder::getAddr); |
| | | // queryWrapper.select("(select CREATE_DATE from order_urge where ORDER_ID=t.id and ISDELETED=0 ORDER BY CREATE_DATE desc limit 1) as urgeCreateDate "); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,Goodsorder::getMemberId); |
| | | queryWrapper.leftJoin(Addr.class,Addr::getMemberId,Member::getId); |
| | | queryWrapper.eq(Addr::getIsDefault,Constants.ONE); |
| | | |
| | | queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode()); |
| | | queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName()) |
| | | .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName()) |
| | | ); |
| | | queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime()); |
| | | queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime()); |
| | | |
| | | queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId()); |
| | | queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName); |
| | | initPageQueryWrapper(queryWrapper,pageWrap); |
| | | queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus()); |
| | | queryWrapper.eq(pageWrap.getModel().getIsdeleted()==null,Goodsorder::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.orderByDesc(Goodsorder::getCreateDate); |
| | | |
| | | IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper); |
| | | |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode(); |
| | | |
| | | List<Integer> idList = new ArrayList<>(); |
| | | for(Goodsorder model:result.getRecords()){ |
| | | model.setResourcePath(path); |
| | | //è®¢åæ»éé¢çäºå®ä»éé¢å 伿 éé¢ï¼ååå»é款éé¢ |
| | | BigDecimal sumMoney=new BigDecimal(0); |
| | | if(model.getPrice()!=null){ |
| | | if(model.getIntegral()!=null){ |
| | | sumMoney=model.getPrice().add(model.getIntegral()); |
| | | if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){ |
| | | sumMoney.subtract(model.getAftersaleMoney()); |
| | | model.setOrderMoneyCount(sumMoney); |
| | | }else{ |
| | | model.setOrderMoneyCount(sumMoney); |
| | | } |
| | | }else{ |
| | | model.setOrderMoneyCount(model.getPrice()); |
| | | } |
| | | }else if(model.getIntegral()!=null){ |
| | | sumMoney=model.getIntegral(); |
| | | idList.add(model.getId()); |
| | | } |
| | | if(idList.size()>0){ |
| | | dealOrderDetailsBiz(idList,result);//æ¥è¯¢è®¢åæç» |
| | | } |
| | | PageData<Goodsorder> rr = PageData.from(result); |
| | | if(pageWrap.getPage() == 1){ |
| | | //妿æ¥è¯¢ç¬¬ä¸é¡µï¼åæ°æ®ç»è®¡ |
| | | rr.setCountData(dealCountOrderNum(pageWrap)); |
| | | } |
| | | return rr; |
| | | } |
| | | |
| | | private void initPageQueryWrapper(MPJLambdaWrapper<Goodsorder> queryWrapper, PageWrap<Goodsorder> pageWrap) { |
| | | queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId); |
| | | queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO); |
| | | queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode()); |
| | | queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getShopName()),Shop::getName,pageWrap.getModel().getShopName()); |
| | | queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName()) |
| | | .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName()) |
| | | ); |
| | | queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime()); |
| | | queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime()); |
| | | queryWrapper.eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType()); |
| | | queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId()); |
| | | } |
| | | |
| | | |
| | | private Goodsorder dealCountOrderNum( PageWrap<Goodsorder> pageWrap) { |
| | | MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>(); |
| | | initPageQueryWrapper(queryWrapper,pageWrap); |
| | | Goodsorder goodsorder = new Goodsorder(); |
| | | queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey()); |
| | | goodsorder.setWaitPayNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//å¾
æ¯ä» |
| | | |
| | | queryWrapper = new MPJLambdaWrapper<>(); |
| | | initPageQueryWrapper(queryWrapper,pageWrap); |
| | | queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.PAY_DONE.getKey()); |
| | | goodsorder.setWaitKdNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//å¾
åè´§ï¼å¾
èªæ |
| | | |
| | | queryWrapper = new MPJLambdaWrapper<>(); |
| | | initPageQueryWrapper(queryWrapper,pageWrap); |
| | | queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey()); |
| | | goodsorder.setWaitDoneNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//å¾
æ¶è´§ |
| | | return goodsorder; |
| | | |
| | | } |
| | | |
| | | private void dealOrderDetailsBiz(List<Integer> idList, IPage<Goodsorder> result) { |
| | | MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>(); |
| | | queryGoods.selectAll(GoodsorderDetail.class); |
| | | queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl); |
| | | queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName); |
| | | queryGoods.select("ls.name as parentName "); |
| | | |
| | | queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId); |
| | | queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId); |
| | | |
| | | queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId); |
| | | queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID"); |
| | | queryGoods.in(GoodsorderDetail::getOrderId,idList); |
| | | queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO); |
| | | List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods); |
| | | String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode(); |
| | | for(Goodsorder model :result.getRecords()){ |
| | | initOrderPrice(model); |
| | | model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId())); |
| | | } |
| | | } |
| | | |
| | | private void initOrderPrice(Goodsorder model) { |
| | | //è®¢åæ»éé¢çäºå®ä»éé¢å 伿 éé¢ï¼ååå»é款éé¢ |
| | | BigDecimal sumMoney=new BigDecimal(0); |
| | | if(model.getPrice()!=null){ |
| | | if(model.getIntegral()!=null){ |
| | | sumMoney=model.getPrice().add(model.getIntegral()); |
| | | if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){ |
| | | sumMoney.subtract(model.getAftersaleMoney()); |
| | | model.setOrderMoneyCount(sumMoney); |
| | | }else{ |
| | | model.setOrderMoneyCount(sumMoney); |
| | | } |
| | | }else{ |
| | | model.setOrderMoneyCount(model.getPrice()); |
| | | } |
| | | |
| | | |
| | | MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>(); |
| | | queryGoods.selectAll(GoodsorderDetail.class); |
| | | queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl); |
| | | queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName); |
| | | queryGoods.select("ls.name as parentName "); |
| | | |
| | | queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId); |
| | | queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId); |
| | | |
| | | queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId); |
| | | queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID"); |
| | | queryGoods.eq(GoodsorderDetail::getOrderId,model.getId()); |
| | | queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO); |
| | | List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods); |
| | | goodsorderDetailList.stream().forEach(s ->{ |
| | | if(StringUtils.isBlank(s.getImgurl())){ |
| | | s.setImgurl(s.getGoodsImgurl()); |
| | | } |
| | | }); |
| | | model.setGoodsorderDetailList(goodsorderDetailList); |
| | | }else if(model.getIntegral()!=null){ |
| | | sumMoney=model.getIntegral(); |
| | | if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){ |
| | | sumMoney.subtract(model.getAftersaleMoney()); |
| | | model.setOrderMoneyCount(sumMoney); |
| | | }else{ |
| | | model.setOrderMoneyCount(sumMoney); |
| | | } |
| | | } |
| | | return PageData.from(result); |
| | | } |
| | | |
| | | @Override |
| | | public PageData<Goodsorder> findPageShop(PageWrap<Goodsorder> pageWrap) { |
| | | IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | |
| | | w.like(GoodsorderDetail::getName,pageWrap.getModel().getGoodsName() ).or().eq(GoodsorderDetail::getGoodsSkuId,pageWrap.getModel().getGoodsName()); |
| | | } ); |
| | | List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods); |
| | | String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ |
| | | systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode(); |
| | | for(Goodsorder model:result.getRecords()){ |
| | | model.setGoodsorderDetailList(getDetailListById(goodsorderDetailList,model.getId())); |
| | | model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId())); |
| | | } |
| | | if(pageWrap.getPage() == 1 && pageWrap.getModel().getDistributionShopId()!=null){ |
| | | //妿æ¥è¯¢ç¬¬ä¸é¡µï¼åç»éåéå®ä¿¡æ¯ç»è®¡ä¸å¡æ¥è¯¢ |
| | |
| | | return rr; |
| | | } |
| | | |
| | | private List<GoodsorderDetail> getDetailListById(List<GoodsorderDetail> goodsorderDetailList, Integer id) { |
| | | private List<GoodsorderDetail> getDetailListById( String fullUrl ,List<GoodsorderDetail> goodsorderDetailList, Integer id) { |
| | | List<GoodsorderDetail> list = new ArrayList<>(); |
| | | for(GoodsorderDetail d : goodsorderDetailList){ |
| | | if(Constants.equalsInteger(id,d.getOrderId())){ |
| | | list.add(d); |
| | | if(goodsorderDetailList!=null && goodsorderDetailList.size()>0){ |
| | | for(GoodsorderDetail d : goodsorderDetailList){ |
| | | if(Constants.equalsInteger(id,d.getOrderId())){ |
| | | if(d.getImgurl()!=null){ |
| | | d.setImgurl(fullUrl+d.getImgurl()); |
| | | } |
| | | list.add(d); |
| | | } |
| | | } |
| | | } |
| | | return list; |
| | |
| | | info = info.replace("${param"+(i+1)+"}",params[i]); |
| | | } |
| | | } |
| | | UserAction userAction=new UserAction(); |
| | | UserAction userAction=new UserAction(); |
| | | userAction.setIsdeleted(Constants.ZERO); |
| | | userAction.setCreateDate(date); |
| | | userAction.setCreator(user.getId()); |