反馈对接,添加发票及发票记录接口对接

version/0412
mujinxia 1 year ago
parent de2efe4185
commit b3aea6dd9f
  1. 24
      pages/invoice/editset.vue
  2. 43
      pages/invoice/indexset.vue
  3. 63
      pages/news1/feedback.vue

@ -133,8 +133,9 @@ export default {
}, },
methods: { methods: {
//
// //
toDetail(canReset = false) { async toDetail(canReset = false) {
const app = this const app = this
if (app.index == -1) { if (app.index == -1) {
uni.showToast({ uni.showToast({
@ -160,6 +161,16 @@ export default {
}) })
return return
} }
console.log(app.obj)
debugger
let {
status,
data
} = await InvoiceApi.addInvoicing(app.obj);
if (status == 200) {
debugger
}
return
app.isLoading = true; app.isLoading = true;
if (app.tabIndex == 1) { if (app.tabIndex == 1) {
app.obj.gongsi = ''; app.obj.gongsi = '';
@ -188,7 +199,6 @@ export default {
if (app.sourcePage == 4) { // if (app.sourcePage == 4) { //
url = InvoiceApi.editInvoicing(app.orderId, app.obj) url = InvoiceApi.editInvoicing(app.orderId, app.obj)
} }
debugger
url.then(result => { url.then(result => {
if (result.status == 200) { if (result.status == 200) {
uni.showToast({ uni.showToast({
@ -256,7 +266,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.invoice-btn{ .invoice-btn {
width: 100%; width: 100%;
position: fixed; position: fixed;
bottom: 0; bottom: 0;
@ -265,11 +275,14 @@ export default {
z-index: 8; z-index: 8;
background: #F5F5F5; background: #F5F5F5;
} }
.invoice-company{
.invoice-company {
margin-bottom: 170rpx; margin-bottom: 170rpx;
} }
.invoice { .invoice {
padding-bottom: 1rpx; padding-bottom: 1rpx;
&-goods { &-goods {
padding: 0 20rpx 0 40rpx; padding: 0 20rpx 0 40rpx;
overflow: hidden; overflow: hidden;
@ -577,5 +590,4 @@ export default {
} }
} }
} }</style>
</style>

@ -28,7 +28,7 @@
<!-- 发票抬头 --> <!-- 发票抬头 -->
<view v-if="tabIndex == 1"> <view v-if="tabIndex == 1">
<view class="invoice-header"> <view class="invoice-header">
<view class="bill-header-item" @click="onAddInvoice" v-for="(item, index) in recordList" :key="index"> <view class="bill-header-item" @click="onAddInvoice" v-for="(item, index) in recordHeaderList" :key="index">
<view class="bill-header-left"> <view class="bill-header-left">
<view class="header-type">普通发票抬头-个人</view> <view class="header-type">普通发票抬头-个人</view>
<view class="bill-header"> <view class="bill-header">
@ -47,6 +47,7 @@
</view> </view>
</template> </template>
<script> <script>
@ -57,15 +58,53 @@ export default {
return { return {
tabIndex: 0, tabIndex: 0,
invoicList: [], invoicList: [],
recordList: [1, 2] recordList: [1, 2],
recordHeaderList:[1,2]
}; };
}, },
onLoad() { onLoad() {
this.getRecordList()
}, },
methods: { methods: {
onTabClick(index) { onTabClick(index) {
this.tabIndex = index this.tabIndex = index
if(index == 1){
this.recordHeaderList = []
this.getHeaderList()
}else{
this.recordList = []
this.getRecordList()
}
},
//
async getRecordList() {
uni.showLoading({
title: "加载中"
})
let {
status,
data
} = await InvoiceApi.invoicingLog({});
if (status == 200) {
uni.hideLoading();
this.recordList = data.list
}
}, },
//
async getHeaderList() {
uni.showLoading({
title: "加载中"
})
let {
status,
data
} = await InvoiceApi.myInvoicing({});
if (status == 200) {
uni.hideLoading();
this.recordHeaderList = data.list
}
},
onEdit(item) { onEdit(item) {
uni.navigateTo({ uni.navigateTo({
url: "/pages/invoice/editset?detail=" + JSON.stringify(item) + '&source=' + 4 url: "/pages/invoice/editset?detail=" + JSON.stringify(item) + '&source=' + 4

@ -22,7 +22,7 @@
<u-form-item label="反馈类型" label-width="170"> <u-form-item label="反馈类型" label-width="170">
<u-radio-group v-model="form.type"> <u-radio-group v-model="form.type">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList1" :key="index" <u-radio active-color="#FF4434" v-for="(item, index) in checkboxList1" :key="index"
:name="item.name"> :name="item.val">
{{ item.name }} {{ item.name }}
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
@ -31,7 +31,7 @@
<u-form-item label="反馈类型" label-width="170"> <u-form-item label="反馈类型" label-width="170">
<u-radio-group v-model="form.shop"> <u-radio-group v-model="form.shop">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList2" :key="index" <u-radio active-color="#FF4434" v-for="(item, index) in checkboxList2" :key="index"
:name="item.name"> :name="item.val">
{{ item.name }} {{ item.name }}
</u-radio> </u-radio>
</u-radio-group> </u-radio-group>
@ -45,15 +45,16 @@
<u-form-item label="投诉内容" required label-width="150" label-position="top"> <u-form-item label="投诉内容" required label-width="150" label-position="top">
<u-input v-model="form.comment" class="textarea" placeholder="请填写投诉内容" type="textarea" /> <u-input v-model="form.comment" class="textarea" placeholder="请填写投诉内容" type="textarea" />
</u-form-item> </u-form-item>
<u-upload :fileList="finishImageList" :previewFullImage="true" @afterRead="afterRead" :maxCount="8" <u-upload :action="action" :header="header" :fileList="finishImageList" :previewFullImage="true"
width="180" height="180" upload-text="上传照片" @delete="deletePic" name="1" multiple></u-upload> @afterRead="afterRead" :maxCount="8" upload-text="上传照片" @delete="deletePic" name="1"
multiple></u-upload>
</view> </view>
<view class="section1Item" style="margin-top:20rpx;"> <view class="section1Item" style="margin-top:20rpx;">
<u-form-item label="您的称呼" label-width="170"> <u-form-item label="您的称呼" label-width="170">
<u-input placeholder="请输入您的称呼" v-model="form.name" /> <u-input placeholder="请输入您的称呼" v-model="form.user_name" />
</u-form-item> </u-form-item>
<u-form-item label="手机号码" label-width="170"> <u-form-item label="手机号码" label-width="170">
<u-input placeholder="请输入手机号" v-model="form.phone" /> <u-input placeholder="请输入手机号" v-model="form.mobile" />
</u-form-item> </u-form-item>
</view> </view>
</u-form> </u-form>
@ -71,7 +72,7 @@
<view class="feedbackItem"> <view class="feedbackItem">
<view class="feedbackContent"> <view class="feedbackContent">
<view class="fbTitle"> <view class="fbTitle">
<view class="fbFlag"> <view class="fbFlag" v-if="item.type != 0">
<text v-if="item.type == 1">投诉</text> <text v-if="item.type == 1">投诉</text>
<text v-if="item.type == 2">建议</text> <text v-if="item.type == 2">建议</text>
<text v-if="item.type == 3">表扬</text> <text v-if="item.type == 3">表扬</text>
@ -103,7 +104,7 @@
{{ item.replay_at }} {{ item.replay_at }}
</u-form-item> </u-form-item>
<u-form-item label="反馈内容:" label-width="150" prop="feedback"> <u-form-item label="反馈内容:" label-width="150" prop="feedback">
{{ item.content }} {{ item.reply }}
</u-form-item> </u-form-item>
</u-form> </u-form>
</u-collapse-item> </u-collapse-item>
@ -122,7 +123,7 @@
{{ item.replay_at }} {{ item.replay_at }}
</u-form-item> </u-form-item>
<u-form-item label="反馈内容:" label-width="150" prop="feedback"> <u-form-item label="反馈内容:" label-width="150" prop="feedback">
{{ item.content }} {{ item.reply }}
</u-form-item> </u-form-item>
</u-form> </u-form>
</u-collapse-item> </u-collapse-item>
@ -130,8 +131,8 @@
</view> </view>
</view> </view>
</view> </view>
<view class="empty" v-if="OrderType == 2"> <view class="empty" v-if="OrderType != 0 && total == 0">
<u-empty text="暂无信息" mode="list"></u-empty> <u-empty text="暂无信息" mode="list"></u-empty>
</view> </view>
<!-- <view class="empty" v-if="OrderType == 2"> <!-- <view class="empty" v-if="OrderType == 2">
<image class="emptyImg" :src="$picUrl + '/static/news1/feedbackempty.png'" mode="widthFix"></image> <image class="emptyImg" :src="$picUrl + '/static/news1/feedbackempty.png'" mode="widthFix"></image>
@ -143,23 +144,26 @@
</template> </template>
<script> <script>
import Config from '@/core/config'
import * as feedback from '@/api/feedback' import * as feedback from '@/api/feedback'
export default { export default {
data() { data() {
return { return {
action: '',
header: '',
OrderType: 0, OrderType: 0,
shop_id: '', shop_id: '',
total: 1,
form: { form: {
type: '', type: '',
shop: '', shop: '',
shopText: '', shopText: '',
comment: '', comment: '',
name: '', user_name: '',
phone: '' phone: ''
}, },
feedBackList: [], feedBackList: [],
page: 1,
checkboxList1: [{ checkboxList1: [{
name: '投诉', name: '投诉',
val: 1 val: 1
@ -174,10 +178,12 @@ export default {
} }
], ],
checkboxList2: [{ checkboxList2: [{
name: '门店' name: '门店',
val: 1
}, },
{ {
name: '其他' name: '其他',
val: 2
}, },
], ],
typeShow: false, typeShow: false,
@ -187,11 +193,25 @@ export default {
result: {} result: {}
}; };
}, },
onReady() {
this.action = (Config.get('apiUrl') + 'upload/image').replace("index.php?s=/", "")
this.header = {
'Storeid': uni.getStorageSync('Store').storeInfo.store_id,
'Access-Token': uni.getStorageSync('AccessToken'),
'platform': "MP-WEIXIN",
}
},
onShow() { onShow() {
this.getShopList() this.getShopList()
}, },
onLoad(params) { onLoad(params) {
},
onReachBottom() {
if (this.feedBackList.length <= this.total) {
this.pageNum++;
this.getFeedBack(this.OrderType)
}
}, },
methods: { methods: {
getShopList() { getShopList() {
@ -223,7 +243,7 @@ export default {
}) })
return return
} }
if (this.form.phone && (!/^\+?\d[\d -]{8,12}\d/.test(this.form.phone))) { if (this.form.mobile && (!/^\+?\d[\d -]{8,12}\d/.test(this.form.mobile))) {
uni.showToast({ uni.showToast({
title: '手机号格式不正确!', title: '手机号格式不正确!',
icon: 'none', icon: 'none',
@ -235,7 +255,10 @@ export default {
shop_id: that.shop_id, shop_id: that.shop_id,
type: that.form.type, type: that.form.type,
object_type: that.form.shop, object_type: that.form.shop,
content: that.form.comment content: that.form.comment,
user_name: that.form.user_name,
mobile: that.form.mobile,
image_id: that.image_id
} }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
feedback.add(params) feedback.add(params)
@ -253,6 +276,7 @@ export default {
*/ */
onOrderTab(type) { onOrderTab(type) {
this.OrderType = type; this.OrderType = type;
this.pageNum = 1
this.feedBackList = [] this.feedBackList = []
if (type != 0) { if (type != 0) {
this.getFeedBack(type) this.getFeedBack(type)
@ -264,14 +288,15 @@ export default {
const that = this const that = this
let params = { let params = {
is_my: 0, is_my: 0,
page: that.page page: that.pageNum
} }
params.is_my = type == 1 ? 0 : 1 params.is_my = type == 1 ? 0 : 1
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
feedback.list(params) feedback.list(params)
.then(res => { .then(res => {
if (res.status == 200) { if (res.status == 200) {
that.feedBackList = res.data.list.data that.total = res.data.list.total
that.feedBackList =that.feedBackList.concat(res.data.list.data)
} }
}) })
.catch(reject) .catch(reject)

Loading…
Cancel
Save