Commit c8dc167b authored by lixy's avatar lixy

Merge branch 'dev'

parents 66e6ff8c 3d11dfbd
...@@ -46,3 +46,46 @@ export function createOrder(obj) { ...@@ -46,3 +46,46 @@ export function createOrder(obj) {
}); });
} }
/**
* 添加定制数据
*/
export function setOrderItem(obj) {
return fetch({
url: '/api/website/orderInfo/setOrderItem',
method: 'post',
data: obj
});
}
/**
* 选择定制数据
*/
export function getItemByType(obj) {
return fetch({
url: '/api/website/orderInfo/getItemByType',
method: 'get',
params: obj
});
}
/**
* 对公支付审核
*/
export function updatePayStatus(obj) {
return fetch({
url: '/api/website/orderInfo/updatePayStatus',
method: 'post',
data: obj
});
}
/**
* 对公支付信息
*/
export function getCompanyInfoByType(query) {
return fetch({
url: 'api/website/commonInfo/web/app/unauth/getByType',
method: 'get',
params: query
});
}
...@@ -38,6 +38,10 @@ export function convertDate2Str(object) { ...@@ -38,6 +38,10 @@ export function convertDate2Str(object) {
export function timestamp2Date(timestamp) { export function timestamp2Date(timestamp) {
let str = timestamp + ''
if( str.length == 10){
timestamp = timestamp * 1000
}
const date = new Date(timestamp); // 时间戳为10位需*1000,时间戳为13位的话不需乘1000 const date = new Date(timestamp); // 时间戳为10位需*1000,时间戳为13位的话不需乘1000
return formatDate(date, 'yyyy-MM-dd hh:mm:ss'); return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
} }
......
...@@ -13,15 +13,14 @@ ...@@ -13,15 +13,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="下单时间" label-width="130px"> <el-form-item label="下单时间">
<el-date-picker <el-date-picker
v-model="times" v-model="times"
value-format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange" type="datetimerange"
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期">
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -30,11 +29,7 @@ ...@@ -30,11 +29,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="商品类型"> <el-form-item label="商品类型">
<el-select filterable v-model="listQuery.type" placeholder="请选择"> <el-select filterable v-model="listQuery.type" placeholder="请选择">
<el-option <el-option :key="undefined" label="全部" :value="undefined"></el-option>
:key="undefined"
label="全部"
:value="undefined"
></el-option>
<el-option :key="1" label="标准数据" :value="1"></el-option> <el-option :key="1" label="标准数据" :value="1"></el-option>
<el-option :key="2" label="全部" :value="2"></el-option> <el-option :key="2" label="全部" :value="2"></el-option>
<el-option :key="3" label="全部" :value="3"></el-option> <el-option :key="3" label="全部" :value="3"></el-option>
...@@ -43,37 +38,16 @@ ...@@ -43,37 +38,16 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="订单状态"> <el-form-item label="订单状态">
<el-select <el-select filterable v-model="listQuery.status" placeholder="请选择">
filterable <el-option :key="undefined" label="全部" :value="undefined"></el-option>
v-model="listQuery.status" <el-option v-for="item in orderStatusList" :key="item.id" :label="item.name" :value="item.id"></el-option>
placeholder="请选择"
>
<el-option
:key="undefined"
label="全部"
:value="undefined"
></el-option>
<el-option
v-for="item in orderStatusList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="付款状态"> <el-form-item label="付款状态">
<el-select <el-select filterable v-model="listQuery.payStatus" placeholder="请选择">
filterable <el-option :key="undefined" label="全部" :value="undefined"></el-option>
v-model="listQuery.payStatus"
placeholder="请选择"
>
<el-option
:key="undefined"
label="全部"
:value="undefined"
></el-option>
<el-option :key="1" label="已支付" :value="1"></el-option> <el-option :key="1" label="已支付" :value="1"></el-option>
<el-option :key="2" label="未支付" :value="2"></el-option> <el-option :key="2" label="未支付" :value="2"></el-option>
</el-select> </el-select>
...@@ -83,9 +57,7 @@ ...@@ -83,9 +57,7 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-button type="primary" @click="handleFilter">筛选</el-button> <el-button type="primary" @click="handleFilter">筛选</el-button>
<el-button type="primary" plain @click="clear_search" <el-button type="primary" plain @click="clear_search">清空筛选条件</el-button>
>清空筛选条件</el-button
>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
...@@ -103,189 +75,64 @@ ...@@ -103,189 +75,64 @@
</div> </div>
<div v-for="item in list" :key="item.orderId"> <div v-for="item in list" :key="item.orderId">
<div class="order-no-top"> <div class="order-no-top">
<span class="order-no" <span class="order-no">订单号:{{item.orderNo}}
>订单号:{{ item.orderNo <span class="tag-invoice" v-if="item.invoiceStatus>=2">已开票</span>
}}<span <span class="tag-no" v-else-if="item.invoiceId">开发票</span>
style=" <span class="tag-no" style="color: #d9001b;" v-if="item.type == 2">定制</span>
background: #f8ddbb; </span>
color: #f59a23; <span class="order-time"><span class="tag-invoice-no" @click="handleInvoice(item)" v-if="item.invoiceId && item.invoiceStatus == 1">开发票</span>下单时间:{{item.crtTime}}</span>
font-size: 12px;
padding: 2px 10px;
border-radius: 10px;
margin-left: 10px;
"
v-if="item.invoiceStatus >= 2"
>已开票</span
><span
style="
border: 1px solid #eee;
color: #1890ff;
font-size: 12px;
padding: 2px 10px;
border-radius: 10px;
margin-left: 10px;
"
v-else-if="item.invoiceId"
>开发票</span
></span
>
<span class="order-time"
><span
style="
background: #1890ff;
color: #fff;
font-size: 12px;
padding: 2px 10px;
border-radius: 4px;
margin-right: 10px;
cursor: pointer;
"
@click="handleInvoice(item)"
v-if="item.invoiceId && item.invoiceStatus == 1"
>开发票</span
>下单时间:{{ item.crtTime }}</span
>
</div> </div>
<table class="order-table-1"> <table class="order-table-1">
<tr> <tr>
<td class="goods-name">{{ item.nickname }}</td> <td class="goods-name">{{item.nickname}}</td>
<td class="goods-phone">{{ item.phone }}</td> <td class="goods-phone">{{item.phone}}</td>
<td class="goods-item" v-if="item.type == 1"> <td class="goods-item" v-if="item.type == 1">
<div <div v-for="iitem in item.orderItemList" :key="iitem.itemId" class="flex-aic goods-ii">
v-for="iitem in item.orderItemList" <div class="flex-aic-jcb" style="width: 100%;">
:key="iitem.itemId" <div class="flex-aic">
class="flex-aic goods-ii" <img style="width: 84px;height: 62px;border-radius: 8px;object-fit: cover;margin-right: 6px;" :src="iitem.itemPic">
> <span v-if="iitem.type != 1">{{iitem.name}}</span>
<img
style="
width: 84px;
height: 62px;
border-radius: 8px;
object-fit: cover;
"
:src="iitem.itemPic"
/>
<span v-if="iitem.type != 1">{{ iitem.name }}</span>
<div v-else> <div v-else>
<p>卫星:{{ iitem.detailJson.imageSatelliteType }}</p> <p>卫星:{{iitem.detailJson.imageSatelliteType}}</p>
<p>传感器:{{ iitem.detailJson.imageSensorType }}</p> <p>传感器:{{iitem.detailJson.imageSensorType}}</p>
<p>分辨率:{{ iitem.imageResolutionStr }}</p> <p>分辨率:{{iitem.imageResolutionStr}}</p>
<p>云量:{{ iitem.detailJson.imageCloudage }}</p> <p>云量:{{iitem.detailJson.imageCloudage}}</p>
</div>
</div>
<p style="padding-right: 10px;">{{iitem.type==1?'标准数据':iitem.type==2?'行业应用':iitem.type==3?'影像图库':iitem.type}}</p>
</div> </div>
</div> </div>
</td> </td>
<td class="goods-item" v-if="item.type == 2"> <td class="goods-item" v-if="item.type == 2">
<p> <div class="flex-aic-jcb">
区域范围:{{ <div>
item.customerJson.provinceName + <p>区域范围:{{item.customerJson.provinceName + item.customerJson.cityName + item.customerJson.areaName}}</p>
item.customerJson.cityName + <p>采集时间:{{ item.customerJson.startTimeStr }}{{ item.customerJson.endTimeStr }}</p>
item.customerJson.areaName <p v-if="item.customerJson.type == 1">分辨率:{{ item.customerJson.resolution }}</p>
}} <p v-if="item.customerJson.type != 3">获取类型:{{ item.customerJson.gainType==101?'数据API': item.customerJson.gainType==102?'实体数据':item.customerJson.gainType==201?'报告':item.customerJson.gainType==202?'web平台':item.customerJson.gainType==203?'其他':item.customerJson.gainType}}</p>
</p> <p v-if="item.customerJson.type==3">定制类型:{{ item.customerJson.dataType }}</p>
<p> <p v-if="item.customerJson.type==3">数据格式:{{ item.customerJson.dataFormat }}</p>
采集时间:{{ item.customerJson.startTimeStr }}{{ </div>
item.customerJson.endTimeStr <p style="padding-right: 10px;">{{item.customerJson.type==1?'编程需求':item.customerJson.type==2?'专题应用需求':item.customerJson.type==3?'影像图需求':item.customerJson.type}}</p>
}} </div>
</p>
<p v-if="item.customerJson.type == 1">
分辨率:{{ item.customerJson.resolution }}
</p>
<p v-if="item.customerJson.type != 3">
获取类型:{{
item.customerJson.gainType == 101
? "数据API"
: item.customerJson.gainType == 102
? "实体数据"
: item.customerJson.gainType == 201
? "报告"
: item.customerJson.gainType == 202
? "web平台"
: item.customerJson.gainType == 203
? "其他"
: item.customerJson.gainType
}}
</p>
<p v-if="item.customerJson.type == 3">
定制类型:{{ item.customerJson.dataType }}
</p>
<p v-if="item.customerJson.type == 3">
数据格式:{{ item.customerJson.dataFormat }}
</p>
</td>
<td class="goods-remark">
{{
item.remark
? item.remark
: item.customerJson
? item.customerJson.descr
: ""
}}
</td>
<td class="send-way-item">
{{
item.sendType == 1 ? "线上" : item.sendType == 2 ? "线下" : "线上"
}}
</td>
<td class="pay-way-item">{{ item.payType }}</td>
<td class="amount-item">{{ item.totalAmount }}</td>
<td
class="order-status-item"
:style="
item.status == 4
? 'color:#f6b725;'
: item.status == 5
? 'color:#0493fe;'
: item.status == 6
? 'color:#2fd96f;'
: item.status == 2
? 'color:#e83328;'
: ''
"
>
{{
item.status == 2
? "待付款"
: item.status == 4
? "待发货"
: item.status == 5
? "待收货"
: item.status == 6
? "已完成"
: item.status == -2
? "已取消"
: item.status == -1
? "已删除"
: item.status
}}
</td> </td>
<td style="padding: 20px; border-right: none"> <td class="goods-remark">{{item.remark?item.remark:item.customerJson?item.customerJson.descr:''}}</td>
<span <td class="send-way-item">{{item.sendType==1?'线上':item.sendType==2?'线下':'线上'}}</td>
class="normal-btn" <td class="pay-way-item" :style="item.payType==3?'color:#f6b725;':item.payType==2?'color:#13a8ff;':'color:#73d721;'">{{item.payType==1?'微信支付':item.payType==2?'支付宝':item.payType==3?'对公支付':item.payType}}</td>
v-if="item.status == 5 || item.status == 6" <td class="amount-item">{{item.totalAmount}}</td>
@click="handleSee(item)" <td class="order-status-item" v-if="item.payType==3" :style="item.status==4?'color:#f6b725;':item.status==5?'color:#0493fe;':item.status==6?'color:#2fd96f;':item.status==2&& !item.payImg?'color:#e83328;':item.status==2&& item.payImg?'color:#13a8ff;':''">{{item.status==2 && !item.payImg?'待付款':item.status==2 && item.payImg && !item.auditStatus?'待审核':item.status==2 && item.payImg && item.auditStatus==2?'已拒绝':item.status==4?'待发货':item.status==5?'待收货':item.status==6?'已完成':item.status==-2?'已取消':item.status==-1?'已删除':item.status}}</td>
>查看</span <td class="order-status-item" v-else :style="item.status==4?'color:#f6b725;':item.status==5?'color:#0493fe;':item.status==6?'color:#2fd96f;':item.status==2?'color:#e83328;':''">{{item.status==2?'待付款':item.status==4?'待发货':item.status==5?'待收货':item.status==6?'已完成':item.status==-2?'已取消':item.status==-1?'已删除':item.status}}</td>
> <td style="padding: 20px;border-right: none;">
<span <span class="normal-btn" v-if="item.status==5 || item.status == 6" @click="handleSee(item)">查看</span>
class="normal-btn" <span class="normal-btn" v-if="item.status==4 && item.shippingStatus == 0 && item.type == 1" @click="handleSend(item)">发货</span>
v-if="item.status == 4 && item.shippingStatus == 0" <span class="normal-btn" v-if="item.status==4 && item.type == 2" @click="handleData(item)">选择数据</span>
@click="handleSend(item)" <span class="normal-btn" style="border: 1px solid #13a8ff;color: #13a8ff;" v-if="item.status==2 && item.payType == 3" @click="handleAudit(item)">{{item.auditStatus?'查看':'待审核'}}</span>
>发货</span
>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
<div v-if="list.length <= 0"> <div v-if="list.length<=0"><table class="order-table-1"><tr style="text-align: center;"><td style="padding: 20px;border-right: none;">暂无数据</td></tr></table></div>
<table class="order-table-1"> <div style="width:100%;dispaly:flex;justify-content: center;margin-top:20px" v-show="!listLoading">
<tr style="text-align: center">
<td style="padding: 20px; border-right: none">暂无数据</td>
</tr>
</table>
</div>
<div
style="width:100%;dispaly:flex;justify-content: center;margin-top:20px"
v-show="!listLoading"
>
<el-pagination <el-pagination
style="margin-top: 20px" style="margin-top: 20px"
@size-change="handleSizeChange" @size-change="handleSizeChange"
...@@ -297,28 +144,67 @@ ...@@ -297,28 +144,67 @@
:total="total" :total="total"
></el-pagination> ></el-pagination>
<!--查看发货信息--> <!--查看发货信息-->
<order-send-detail <order-send-detail :oneRow="oneRow" v-if="orderSendDetailVisible" v-on:detailEvent="detailEvent"></order-send-detail>
:oneRow="oneRow"
v-if="orderSendDetailVisible"
v-on:detailEvent="detailEvent"
></order-send-detail>
<!--发货弹窗--> <!--发货弹窗-->
<send <send v-if="sendVisible" :one-row="oneRow" v-on:sendEvent="sendEvent" :title="title"></send>
v-if="sendVisible" <!--定制数据-选择数据-->
:one-row="oneRow" <select-data-dialog v-if="selectDataVisible" :one-row="oneRow" v-on:selectDataEvent="selectDataEvent"></select-data-dialog>
v-on:sendEvent="sendEvent" <!--对公支付审核-->
:title="title" <el-dialog :visible="auditVisible" title="对公支付审核" @close="cancel">
></send> <label style="color: red">转账信息</label>
<div v-if="companyAccountInfo.detail" style="border: 1px solid #eee;padding: 16px;margin: 20px 0;">
<div style="margin-bottom: 20px;">户名:{{companyAccountInfo.detail.accountName}}</div>
<div style="margin-bottom: 20px;">账号:{{companyAccountInfo.detail.account}}</div>
<div>开户行:{{companyAccountInfo.detail.openBank}}</div>
</div>
<label style="color: red">上传信息</label>
<div style="border: 1px solid #eee;padding: 16px;margin-top: 20px;">
<div class="flex-aic">
<label>支付凭证:</label>
<el-image
style="width: 100px; height: 100px;"
:src="oneRow.payImg"
:preview-src-list="[oneRow.payImg]">
</el-image>
</div>
</div>
<el-form label-width="80px" style="margin-top: 20px;" ref="form" :rules="rules" :model="form" v-if="!oneRow.auditStatus">
<el-row>
<el-form-item label="审核结果" prop="auditStatus">
<el-radio v-model="form.auditStatus" :label="1" @change="checkValid">通过</el-radio>
<el-radio v-model="form.auditStatus" :label="2" @change="checkValid">拒绝</el-radio>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="拒绝原因" prop="auditReason" v-if="form.auditStatus == 2">
<el-input type="textarea" v-model="form.auditReason" placeholder="请输入拒绝原因" :maxlength="400" :row="4"></el-input>
</el-form-item>
</el-row>
</el-form>
<div v-else>
<div style="margin-bottom: 20px;margin-top: 20px;">审核状态:{{ oneRow.auditStatus == 1?'已通过':'已拒绝' }}</div>
<div style="margin-bottom: 20px;">拒绝原因:{{ oneRow.auditReason }}</div>
</div>
<div slot="footer" class="dialog-footer" v-if="!oneRow.auditStatus">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" v-if="!isClick" @click="okSend('form')">确 定</el-button>
<el-button type="primary" v-else style="opacity: 0.6;" disabled>确 定</el-button>
</div>
<div slot="footer" class="dialog-footer" v-else>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div> </div>
</div> </div>
</template> </template>
<script type="javascript"> <script type="javascript">
import {getOrderList} from "api/website/order/index"; import {getOrderList, updatePayStatus, getCompanyInfoByType} from "api/website/order/index";
import orderSendDetail from "./orderSendDetail"; import orderSendDetail from "./orderSendDetail";
import send from './send' import selectDataDialog from './selectDataDialog'
import {timestamp2DateAuto} from "../../../utils/dateUtils"; import send from './send'
export default { import {timestamp2DateAuto} from "../../../utils/dateUtils";
components:{orderSendDetail, send}, export default {
components:{orderSendDetail, send, selectDataDialog},
data() { data() {
return { return {
title: '订单发货', title: '订单发货',
...@@ -335,6 +221,8 @@ export default { ...@@ -335,6 +221,8 @@ export default {
{id: -2, name: '已取消'}, {id: -2, name: '已取消'},
// {id: -3, name: '退款'} // {id: -3, name: '退款'}
], ],
isClick: false, // 是否已点击审核
auditVisible: false, // 对公支付审核
listQuery: { listQuery: {
name: undefined, // 商品名称 name: undefined, // 商品名称
page: 1, page: 1,
...@@ -345,18 +233,30 @@ export default { ...@@ -345,18 +233,30 @@ export default {
keywords: undefined, // 订单搜索 keywords: undefined, // 订单搜索
status: undefined, // 订单状态:0、定制订单无价格 1--创建订单,2--待付款,3--已支付,4--已发货, 5--已收货, 6、已完成 -1、删除,-2、取消, -3 退款 status: undefined, // 订单状态:0、定制订单无价格 1--创建订单,2--待付款,3--已支付,4--已发货, 5--已收货, 6、已完成 -1、删除,-2、取消, -3 退款
}, },
form:{
auditStatus: undefined, // 审核状态: 1、审核通过,2、审核拒绝
auditReason: undefined, // 审核理由
orderNo: undefined // 订单号
},
rules: {
auditReason: { required: true, message: '请输入拒绝原因', trigger: 'blur' },
auditStatus: {required: true, message: '请选择审核结果', trigger: 'change' }
},
listLoading: false, listLoading: false,
times: [], // 时间 times: [], // 时间
list: [], list: [],
total: 0, total: 0,
orderSendDetailVisible: false, // 查看弹窗 orderSendDetailVisible: false, // 查看弹窗
sendVisible: false, // 发货弹窗 sendVisible: false, // 发货弹窗
oneRow: {} // 当前操作项 oneRow: {}, // 当前操作项
selectDataVisible: false, // 选择数据
companyAccountInfo: {}, // 对公信息
}; };
}, },
created() { created() {
this.listQuery.keywords = this.$route.query.orderNo; this.listQuery.keywords = this.$route.query.orderNo;
this.getList() this.getList()
this.companyInfoByType() // 获取对公信息
}, },
methods: { methods: {
handleFilter() { handleFilter() {
...@@ -371,12 +271,108 @@ export default { ...@@ -371,12 +271,108 @@ export default {
this.listQuery.page = val; this.listQuery.page = val;
this.getList(); this.getList();
}, },
/**
* 取消审核
*/
cancel(){
this.auditVisible = false
},
/**
* 对公支付-待审核
*/
handleAudit(row){
this.oneRow = row
this.form = {
auditStatus: undefined, // 审核状态: 1、审核通过,2、审核拒绝
auditReason: undefined, // 审核理由
orderNo: row.orderNo // 订单号
}
this.auditVisible = true;
},
/**
* 检测填写状态
*/
checkValid(){
this.$refs['form'].validateField('auditStatus', picError => { //审核结果
if (!picError) {
console.log('审核结果-已选择')
} else {
return false;
}
});
},
/**
* 提交审核
*/
okSend(formName){
let _this = this
if(this.isClick){
return
}
this.isClick = true
setTimeout(function(){
_this.isClick = false
}, 2000)
const set = this.$refs;
set[formName].validate((valid) => {
if (valid) {
updatePayStatus(this.form).then((response) => {
if(response.status == 200){
this.$notify({
title: "成功",
message: "操作成功",
type: "success",
duration: 2000
});
this.auditVisible = false
this.getList()
} else {
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
})
}
});
}
})
},
/** /**
* 查看弹窗关闭 * 查看弹窗关闭
*/ */
detailEvent(){ detailEvent(){
this.orderSendDetailVisible = false this.orderSendDetailVisible = false
}, },
/**
* 获取对公信息
*/
companyInfoByType(){
getCompanyInfoByType({type: 2}).then((res) => {
if(res.status == 200){
if(res.data.length>0){
res.data[0].detail = res.data[0].detail?JSON.parse(res.data[0].detail):{}
this.companyAccountInfo = res.data[0]
}
} else {
this.$notify({
title: "失败",
message: res.message,
type: "error",
duration: 2000,
});
}
});
},
/**
* 选择数据-关闭弹窗
*/
selectDataEvent(e){
if(e){
this.getList()
}
this.selectDataVisible = false
},
/** /**
* 查看 * 查看
*/ */
...@@ -409,6 +405,13 @@ export default { ...@@ -409,6 +405,13 @@ export default {
this.title = '订单发货' this.title = '订单发货'
this.sendVisible = true this.sendVisible = true
}, },
/**
* 选择数据
*/
handleData(row){
this.oneRow = row
this.selectDataVisible = true
},
/** /**
* 商品品牌列表 * 商品品牌列表
*/ */
...@@ -461,131 +464,101 @@ export default { ...@@ -461,131 +464,101 @@ export default {
this.getList(); this.getList();
}, },
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">
.order-manage { .order-manage{
padding: 20px; padding: 20px;
.order-table-1 { .order-table-1{
width: 100%; width: 100%;
border: 1px solid #eee; border: 1px solid #eee;
border-top: none; border-top: none;
td { td{
border-right: 1px solid #e6e6e6; border-right: 1px solid #E6E6E6;
} }
} }
.order-filter { .order-filter{
padding: 24px; padding: 24px;
} }
.el-tabs__item.is-active, .el-tabs__item.is-active, .el-tabs__item:hover{
.el-tabs__item:hover { color: #F6211D;
color: #f6211d;
} }
.order-table { .order-table{
background: #f5f6fa; background: #F5F6FA;border: 1px solid #E6E6E6;display: flex;align-items: center;height: 45px;
border: 1px solid #e6e6e6; label{
display: flex; color: #A3A6B4;
align-items: center;
height: 45px;
label {
color: #a3a6b4;
font-size: 12px; font-size: 12px;
display: flex; display: flex;
} }
} }
.normal-btn { .normal-btn{
border: 1px solid #707070; border:1px solid #707070;border-radius: 2px;height: 24px;width: 60px;margin-top: 16px;font-size: 12px;color: #919299;display: block;text-align: center;line-height: 24px;cursor: pointer;
border-radius: 2px; }
height: 24px; .pay-btn{
width: 60px; background: linear-gradient(90deg,#f6211d, #f9531f);color: #fff;border-radius: 2px;height: 24px;width: 60px;font-size: 12px;color: #fff;display: block;text-align: center;line-height: 24px;cursor: pointer;
margin-top: 16px;
font-size: 12px;
color: #919299;
display: block;
text-align: center;
line-height: 24px;
cursor: pointer;
}
.pay-btn {
background: linear-gradient(90deg, #f6211d, #f9531f);
color: #fff;
border-radius: 2px;
height: 24px;
width: 60px;
font-size: 12px;
color: #fff;
display: block;
text-align: center;
line-height: 24px;
cursor: pointer;
} }
.goods-name, .goods-name, .goods-phone, .goods-remark{
.goods-phone,
.goods-remark {
width: 10%; width: 10%;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
text-align: center; text-align: center;
} }
.goods-item { .goods-item{
width: 20%; width: 30%;
height: 100%; height: 100%;
padding-left: 10px; padding-left: 10px;
align-items: center; align-items: center;
.goods-ii { .goods-ii{
border-bottom: 1px solid #e6e6e6; border-bottom: 1px solid #E6E6E6;
padding: 16px; padding: 16px;
} }
.goods-ii:last-child { .goods-ii:last-child{
border-bottom: none; border-bottom: none;
} }
} }
.pay-way-item, .pay-way-item, .send-way-item{
.send-way-item { width: 8%;
width: 10%;
height: 100%; height: 100%;
text-align: center; text-align: center;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.amount-item { img{object-fit: cover;}
.amount-item{
width: 10%; width: 10%;
height: 100%; height: 100%;
text-align: center; text-align: center;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.order-status-item { .order-status-item{
width: 10%; width: 8%;
height: 100%; height: 100%;
text-align: center; text-align: center;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
.option-item { .option-item{
width: 10%; width: 8%;
height: 100%; height: 100%;
text-align: center; text-align: center;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
flex-direction: column; flex-direction: column;
} }
.order-no { .order-no{
color: #43425d; color: #43425D;
font-size: 13px; font-size: 13px;
} }
.order-time { .order-time{
color: #919299; color: #919299;
font-size: 12px; font-size: 12px;
} }
.order-no-top { .order-no-top{
background: #f5f6fa; background: #F5F6FA;border: 1px solid #E6E6E6;padding: 14px 16px;display: flex;justify-content: space-between;align-items: center;margin-top: 16px;
border: 1px solid #e6e6e6; }
padding: 14px 16px; .tag-invoice{background: #f8ddbb;color: #F59A23;font-size: 12px;padding: 2px 10px;border-radius: 10px;margin-left:10px;}
display: flex; .tag-invoice-no{background: #1890FF;color: #fff;font-size: 12px;padding: 2px 10px;border-radius: 4px;margin-right:10px;cursor: pointer;}
justify-content: space-between; .tag-no{border:1px solid #eee;color: #1890FF;font-size: 12px;padding: 2px 10px;border-radius: 10px;margin-left:10px;}
align-items: center;
margin-top: 16px;
} }
}
</style> </style>
<template> <template>
<el-dialog title="订单详情" :visible.sync="isVisible"></el-dialog> <el-dialog title="发货详情" :visible.sync="isVisible" class="send-main">
<div class="invoice-item" v-if="oneRow.orderEInvoice && oneRow.invoiceStatus >= 3">
<div class="flex-aic-jcb">
<div class="invoice-item-text"><label>{{ oneRow.orderEInvoice.titleType == 1 ? "公司名称" : "个人名称" }}{{ oneRow.orderEInvoice.titleName }}</label> </div>
<div
style="
color: #0a84ff;
font-size: 12px;
background: #d9eafa;
border-radius: 2px;
padding: 2px 5px;
">
{{ oneRow.orderEInvoice.type == 1 ? "普通发票" : "增值税专用发票" }}-{{
oneRow.orderEInvoice.titleType == 1 ? "企业" : "个人" }}
</div>
</div>
<div class="invoice-item-text" v-if="oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2" ><label>地址:{{ oneRow.orderEInvoice.province }}{{ oneRow.orderEInvoice.city }}{{ oneRow.orderEInvoice.town}}{{ oneRow.orderEInvoice.address }}</label> </div>
<div class="invoice-item-text" v-if="oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2"> <label>电话:{{ oneRow.orderEInvoice.phone }}</label> </div>
<div class="invoice-item-text" v-if="oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2"> <label>开户行:{{ oneRow.orderEInvoice.openBank }}</label></div>
<div class="invoice-item-text" v-if="oneRow.orderEInvoice.titleType == 1 && oneRow.orderEInvoice.type == 2"><label>账号:{{ oneRow.orderEInvoice.account }}</label></div>
<div class="flex-aic-jcb">
<span class="invoice-item-text" v-if="oneRow.orderEInvoice.titleType == 1"><label>税号:{{ oneRow.orderEInvoice.taxCode }}</label></span>
</div>
<el-form label-width="80px" style="margin-top: 20px;">
<el-row>
<el-form-item label="快递公司">
<el-input style="width:300px" v-model="oneRow.orderEInvoice.trackingImg" placeholder="请输入快递公司" :maxlength="40" disabled></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="快递单号">
<el-input style="width:300px" v-model="oneRow.orderEInvoice.trackingNumber" placeholder="请输入快递单号" :maxlength="40" disabled></el-input>
</el-form-item>
</el-row>
</el-form>
</div>
<div class="send-info" v-if="oneRow.shippingStatus == 2">
<div class="flex-aic-jcb">
<label>联系人:{{oneRow.receiveName}}</label>
<label style="border:1px solid #409EFF;color: #409EFF;font-size: 12px;padding: 2px 6px;border-radius:4px;">个人信息</label>
</div>
<div style="margin: 10px 0;"><label>手机号:{{oneRow.receivePhone}}</label></div>
<div><label>地址:{{oneRow.receiveAddress}}</label></div>
<el-form label-width="80px" style="margin-top: 20px;">
<el-row>
<el-form-item label="快递公司">
<el-input style="width:300px" v-model="oneRow.trackingImg" placeholder="请输入快递公司" :maxlength="40" disabled></el-input>
</el-form-item>
</el-row>
<el-row>
<el-form-item label="快递单号">
<el-input style="width:300px" v-model="oneRow.trackingNumber" placeholder="请输入快递单号" :maxlength="40" disabled></el-input>
</el-form-item>
</el-row>
</el-form>
</div>
</el-dialog>
</template> </template>
<script type="javascript"> <script type="javascript">
export default { export default {
...@@ -35,3 +91,20 @@ ...@@ -35,3 +91,20 @@
} }
} }
</script> </script>
<style lang="scss">
.send-main{
.send-info{
border: 1px solid #eee;
padding: 20px;
margin-bottom: 20px;
margin-top: 20px;
}
.invoice-item{
padding: 20px;
border: 1px solid #eee;
.invoice-item-text{
margin-top: 10px;
}
}
}
</style>
<template>
<el-dialog title="选择数据" :visible.sync="isVisible" width="600px" class="data-main">
<!-- <el-button type="primary" @click="jumpUrl()">新 增</el-button>-->
<div class="flex-aic" v-for="(iitem, index) in list" style="position:relative;margin-bottom: 10px;">
<el-input v-model="iitem.name" placeholder="请输入关键字" style="width: 60%;margin-right:10px;"></el-input>
<div class="ab-main" v-if="iitem.showTab">
<p v-for="item in iitem.dataList" @click="chooseItem(iitem, item)">{{item.name}}</p>
<p v-if="iitem.dataList.length<=0" @click="chooseItem(iitem)">无匹配内容</p>
</div>
<el-button type="primary" @click="handleChoose(iitem)" slot="reference">搜索</el-button>
<el-button type="primary" v-if="index == list.length - 1" @click="handleAdd()" style="margin-left: 10px;">+</el-button>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" v-if="!isClick" @click="okSend()">提 交</el-button>
<el-button type="primary" v-else style="opacity: 0.6;" disabled>提 交</el-button>
</div>
</el-dialog>
</template>
<script type="javascript">
import { getItemByType, setOrderItem } from 'api/website/order/index'
export default {
props: ['oneRow'],
name: 'selectDataDialog',
data() {
return {
isClick: false, // 是否点击了发货
loading: false,
list: [{id: 1, dataList: [], name: ''}], // 已选数组
isVisible: false,
}
},
watch: {
isVisible(newValue, oldValue) {
if (!newValue) {
this.$emit('selectDataEvent', false)
}
}
},
mounted() {
this.isVisible = true
},
methods: {
/**
* 新增
*/
handleAdd(){
this.list.push({id: this.list.length+1, dataList: [], name: ''})
},
/**
* 选择数据
*/
chooseItem(iitem, item){
if(item){
iitem.checkedObj = item
iitem.name = item.name
} else {
iitem.checkedObj = undefined
iitem.name = ''
}
iitem.showTab = false
this.$forceUpdate()
},
/**
* 搜索
*/
handleChoose(row){
this.list.map(function(item){
item.showTab = false;
})
this.getList(row)
},
/**
* 弹框-取消
* */
cancel() {
this.$emit('selectDataEvent', false)
},
/**
* 选择数据列表
*/
getList(row) {
let _this = this
getItemByType({type: this.oneRow.type, name: row.name}).then((response) => {
if(response.status == 200){
row.dataList = response.data
row.showTab = true
_this.$forceUpdate()
} else {
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
})
}
});
},
/**
* 新增-跳转界面
*/
jumpUrl(){
if(this.oneRow.type == 1){
// 标准数据新增
} else if(this.oneRow.type == 2){
// 行业应用
this.$router.push({path:'/industryApplication/applicationList'})
} else if(this.oneRow.type == 3){
// 影像图库
this.$router.push({path:'/webSiteManagement/imageLibrary'})
}
},
/**
* 确定
*/
okSend() {
let _this = this
if(this.isClick){
return
}
this.isClick = true
setTimeout(function(){
_this.isClick = false
}, 2000)
let itemInfoDtoList = []
this.list.map(function(item){
if(item.checkedObj){
let p = {
id: item.checkedObj.id,
type: item.checkedObj.type // 类型 1、标准数据,2、影像图库,3、行业应用信息,
}
itemInfoDtoList.push(p)
}
})
if(itemInfoDtoList.length<=0){
this.$message.warning("请选择数据")
return;
}
let params = {
orderId: this.oneRow.orderId,
itemInfoDtoList: itemInfoDtoList
}
setOrderItem(params).then((response) => {
if(response.status == 200){
this.$notify({
title: "成功",
message: "操作成功",
type: "success",
duration: 2000
});
this.$emit('selectDataEvent', true)
} else {
this.$notify({
title: '失败',
message: response.message,
type: 'error',
duration: 2000
})
}
});
}
}
}
</script>
<style lang="scss">
.data-main{
.el-dialog{
height: calc(100vh - 260px);
min-height:300px;
}
.el-dialog .el-dialog__body{
overflow: auto;
height: calc(100vh - 400px);
min-height: 150px;
}
.ab-main{
position: absolute;
top: 45px;
padding: 0 20px;
border-radius: 4px;
width: 60%;
max-height: 200px;
overflow: auto;
background: rgb(255, 255, 255);
border: 1px solid rgb(244, 244, 244);
z-index: 9;
box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
p{
cursor: pointer;
padding-bottom: 10px;
border-bottom: 1px solid #f4f4f4;
}
p:last-child{
border-bottom: none;
}
}
.ab-main::-webkit-scrollbar, .el-dialog__body::-webkit-scrollbar{width: 0px;}
}
</style>
<template> <template>
<el-dialog :title="title" :visible.sync="isVisible" width="600px" class="send-main"> <el-dialog :title="title" :visible.sync="isVisible" width="600px" class="send-main">
<div class="invoice-item"> <div class="invoice-item" v-if="oneRow.orderEInvoice && title=='发票发货'">
<div class="flex-aic-jcb"> <div class="flex-aic-jcb">
<div class="invoice-item-text"><label>{{ oneRow.orderEInvoice.titleType == 1 ? "公司名称" : "个人名称" }}{{ oneRow.orderEInvoice.titleName }}</label> </div> <div class="invoice-item-text"><label>{{ oneRow.orderEInvoice.titleType == 1 ? "公司名称" : "个人名称" }}{{ oneRow.orderEInvoice.titleName }}</label> </div>
<div <div
...@@ -162,9 +162,6 @@ ...@@ -162,9 +162,6 @@
.invoice-item-text{ .invoice-item-text{
margin-top: 10px; margin-top: 10px;
} }
.invoice-item-text:first-child{
margin-top: 0;
}
} }
} }
</style> </style>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-form-item label="用户ID"> <el-form-item label="用户ID">
<el-input v-model="listQuery.userId" placeholder="请输入用户ID"></el-input> <el-input v-model="listQuery.userId" placeholder="请输入用户ID"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="创建时间"> <el-form-item label="注册时间">
<el-date-picker <el-date-picker
v-model="times" v-model="times"
type="datetimerange" type="datetimerange"
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<!-- <img style="width: 40px;height: 40px;border-radius: 50%;" :src="scope.row.headimgurl" @click.stop="showPreview(scope.row.headimgurl)"/>--> <!-- <img style="width: 40px;height: 40px;border-radius: 50%;" :src="scope.row.headimgurl" @click.stop="showPreview(scope.row.headimgurl)"/>-->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="创建时间"> <el-table-column align="center" label="注册时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.crtTimeStr}} {{scope.row.crtTimeStr}}
</template> </template>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment