供应商列表
This commit is contained in:
parent
37ceb6ef53
commit
16508515c4
|
|
@ -10,6 +10,62 @@ export function summaryTrade(data) {
|
|||
}
|
||||
})
|
||||
}
|
||||
// 供应商列表
|
||||
export function tbShopPurveyorTransact(params) {
|
||||
return request({
|
||||
url: '/api/tbShopPurveyorTransact',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 添加供应商
|
||||
export function tbShopPurveyorpost(data) {
|
||||
return request({
|
||||
url: `/api/tbShopPurveyor`,
|
||||
method: "post",
|
||||
data
|
||||
});
|
||||
}
|
||||
// 编辑供应商
|
||||
export function tbShopPurveyorput(data) {
|
||||
return request({
|
||||
url: `/api/tbShopPurveyor`,
|
||||
method: "put",
|
||||
data
|
||||
});
|
||||
}
|
||||
// 结款记录列表
|
||||
export function tbShopPurveyorTransactinfo(data) {
|
||||
return request({
|
||||
url: '/api/tbShopPurveyorTransact/info',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 付款
|
||||
export function tbShopPurveyorpayTransact(data) {
|
||||
return request({
|
||||
url: '/api/tbShopPurveyorTransact/payTransact',
|
||||
method: "post",
|
||||
data
|
||||
})
|
||||
}
|
||||
// 账单付款记录
|
||||
export function tbShopPurveyorTransacttransactPayInfos(params) {
|
||||
return request({
|
||||
url: '/api/tbShopPurveyorTransact/transactPayInfos',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 删除供应商列表
|
||||
export function tbShopPurveyordelete(data) {
|
||||
return request({
|
||||
url: `/api/tbShopPurveyor`,
|
||||
method: "delete",
|
||||
data
|
||||
});
|
||||
}
|
||||
// 耗材报损
|
||||
export function tbConsInfoFlowfrmLoss(data) {
|
||||
return request({
|
||||
|
|
|
|||
|
|
@ -0,0 +1,139 @@
|
|||
<template>
|
||||
<view class="warehouseEntry">
|
||||
<ul>
|
||||
<li>
|
||||
<view>
|
||||
供应商
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入供应商名称" v-model="datas.form.purveyorName" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
<li>
|
||||
<view>
|
||||
联系电话
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入联系电话" v-model="datas.form.purveyorTelephone" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
<li>
|
||||
<view>
|
||||
地址
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入地址" v-model="datas.form.address" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
<li>
|
||||
<view>
|
||||
备注
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入备注" v-model="datas.form.remark" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
</ul>
|
||||
</view>
|
||||
<view class="bottombutton">
|
||||
<up-button type="primary" style="background-color: #318AFE;color: #fff;" @tap="sumbit" :plain="true"
|
||||
text="保存"></up-button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
computed,
|
||||
reactive,
|
||||
onMounted
|
||||
} from 'vue';
|
||||
import color from '@/commons/color.js';
|
||||
import go from '@/commons/utils/go.js';
|
||||
import {
|
||||
tbShopPurveyorpost
|
||||
} from '@/http/yskApi/requestAll.js';
|
||||
let datas = reactive({
|
||||
form: {
|
||||
shopId: uni.getStorageSync("shopId"),
|
||||
},
|
||||
})
|
||||
|
||||
function sumbit() {
|
||||
tbShopPurveyorpost(datas.form).then(res => {
|
||||
go.to('PAGES_SUPPLIER')
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
page {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.df() {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.status {
|
||||
margin: 0 32rpx;
|
||||
position: absolute;
|
||||
// top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.warehouseEntry {
|
||||
height: 540rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
margin: 28rpx;
|
||||
padding: 1rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
>ul {
|
||||
>li {
|
||||
height: 84rpx;
|
||||
background: #fcfcfc;
|
||||
border: 2rpx solid #F9F9F9;
|
||||
margin-top: 32rpx;
|
||||
.df;
|
||||
|
||||
>view:first-child {
|
||||
width: 190rpx;
|
||||
height: 84rpx;
|
||||
line-height: 84rpx;
|
||||
// text-align: left;
|
||||
padding-left: 24rpx;
|
||||
background: #F9F9F9;
|
||||
border-radius: 8rpx 0rpx 0rpx 8rpx;
|
||||
border: 2rpx solid #F9F9F9;
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottombutton {
|
||||
margin-top: 84rpx;
|
||||
|
||||
>button {
|
||||
width: 530rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 56rpx 56rpx 56rpx 56rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
<template>
|
||||
<ul>
|
||||
<li v-for="item in datas.list" :key="item.id">
|
||||
<view class="">
|
||||
<span>{{item.payType}}</span>
|
||||
<span>{{item.paidAmount}}</span>
|
||||
</view>
|
||||
<view class="">
|
||||
<span>{{item.remark}}</span>
|
||||
<span>{{ dayjs(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }}</span>
|
||||
</view>
|
||||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
onMounted,
|
||||
reactive
|
||||
} from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
import {
|
||||
tbShopPurveyorTransacttransactPayInfos
|
||||
} from '@/http/yskApi/requestAll.js';
|
||||
const props = defineProps({
|
||||
id: {
|
||||
type: Number
|
||||
}
|
||||
})
|
||||
let datas = reactive({
|
||||
list: []
|
||||
})
|
||||
onMounted(() => {
|
||||
getlist()
|
||||
})
|
||||
let getlist = () => {
|
||||
tbShopPurveyorTransacttransactPayInfos({
|
||||
type: "",
|
||||
id: props.id
|
||||
}).then(res => {
|
||||
datas.list = res
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
page {
|
||||
background-color: #f9f9f9;
|
||||
padding: 0 28rpx;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin-top: 32rpx;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
li {
|
||||
height: 138rpx;
|
||||
background-color: #fff;
|
||||
padding: 24rpx 32rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
>view {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
>view:last-child {
|
||||
margin: 12rpx 0;
|
||||
padding-bottom: 12rpx;
|
||||
border-bottom: 2rpx solid #E5E5E5;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,448 @@
|
|||
<template>
|
||||
<view class="mask" v-if="show" @tap="close">
|
||||
<view class="box" @tap.stop="nullFunction">
|
||||
<view class="u-flex u-relative u-row-center u-p-30 top">
|
||||
<view class="font-bold u-font-32">筛选日期时间</view>
|
||||
<view class="close" @tap="close">
|
||||
<uni-icons type="closeempty" size="24"></uni-icons>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<!-- <view class="u-p-30 u-flex u-flex-wrap gap-20 fastTime">
|
||||
<view class="item" v-for="(item,index) in fastTime" :key="index" @tap="changeTime(item.key)">
|
||||
{{item.title}}
|
||||
</view>
|
||||
</view> -->
|
||||
<picker-view :immediate-change="true" @pickend="pickend" :value="value" @change="bindChange"
|
||||
class="picker-view">
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in years" :key="index">{{item}}年</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in months" :key="index">{{item}}月</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in days" :key="index">{{item}}日</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in hours" :key="index">{{item}}时</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in minutes" :key="index">{{item}}分</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in seconds" :key="index">{{item}}秒</view>
|
||||
</picker-view-column>
|
||||
</picker-view>
|
||||
<view class="u-text-center color-999">至</view>
|
||||
<picker-view :immediate-change="true" :value="value1" @pickend="pickend1" @change="bindChange1"
|
||||
class="picker-view">
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in years" :key="index">{{item}}年</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in months" :key="index">{{item}}月</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in days1" :key="index">{{item}}日</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in hours" :key="index">{{item}}时</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in minutes" :key="index">{{item}}分</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item,index) in seconds" :key="index">{{item}}秒</view>
|
||||
</picker-view-column>
|
||||
</picker-view>
|
||||
|
||||
<!-- 站位 -->
|
||||
<view style="height: 80px;"></view>
|
||||
<view class="fixed_b">
|
||||
<my-button shape="circle" @tap="confirm">确定</my-button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import myButton from "@/components/my-components/my-button.vue"
|
||||
import {
|
||||
reactive,
|
||||
ref
|
||||
} from 'vue';
|
||||
const $nowDate = new Date()
|
||||
const nowDate = {
|
||||
year: $nowDate.getFullYear(),
|
||||
month: $nowDate.getMonth() + 1,
|
||||
day: $nowDate.getDate(),
|
||||
hours: $nowDate.getHours(),
|
||||
minutes: $nowDate.getMinutes(),
|
||||
seconds: $nowDate.getSeconds()
|
||||
}
|
||||
const yearsLen = 30
|
||||
const years = new Array(yearsLen).fill(1).map((v, index) => {
|
||||
return nowDate.year - index
|
||||
}).reverse()
|
||||
const months = new Array(12).fill(1).map((v, index) => {
|
||||
return index + 1
|
||||
})
|
||||
const days = ref(new Array(getMonthArea($nowDate, 'end').getDate()).fill(1).map((v, index) => {
|
||||
return index + 1
|
||||
}))
|
||||
const days1 = ref(new Array(getMonthArea($nowDate, 'end').getDate()).fill(1).map((v, index) => {
|
||||
return index + 1
|
||||
}))
|
||||
const hours = new Array(24).fill(1).map((v, index) => {
|
||||
return index
|
||||
})
|
||||
const minutes = new Array(60).fill(1).map((v, index) => {
|
||||
return index
|
||||
})
|
||||
const seconds = new Array(60).fill(1).map((v, index) => {
|
||||
return index
|
||||
})
|
||||
const fastTime = reactive([{
|
||||
title: '今日',
|
||||
key: 'now'
|
||||
},
|
||||
{
|
||||
title: '昨日',
|
||||
key: 'prve'
|
||||
},
|
||||
{
|
||||
title: '本月',
|
||||
key: 'nowMonth'
|
||||
},
|
||||
{
|
||||
title: '上月',
|
||||
key: 'prveMonth'
|
||||
}
|
||||
])
|
||||
|
||||
|
||||
|
||||
function setPrveDay() {
|
||||
|
||||
}
|
||||
|
||||
function setNowMoneth() {
|
||||
|
||||
}
|
||||
|
||||
function setprveMoneth() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
function setDay(start, end) {
|
||||
value.value = [
|
||||
start.year,
|
||||
start.month,
|
||||
start.day,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
]
|
||||
value1.value = [
|
||||
end.year,
|
||||
end.month,
|
||||
end.day,
|
||||
23,
|
||||
59,
|
||||
59,
|
||||
]
|
||||
}
|
||||
|
||||
function changeTime(key) {
|
||||
const yearIndex = years.findIndex(v => v == nowDate.year)
|
||||
const prveyearIndex = years.findIndex(v => v == nowDate.year) - 1
|
||||
const nowMonthIndex = nowDate.month - 1
|
||||
const nowDayIndex = nowDate.day - 1
|
||||
const dataMap = {
|
||||
now: function() {
|
||||
return {
|
||||
start: {
|
||||
year: yearIndex,
|
||||
month: nowMonthIndex,
|
||||
day: nowDayIndex
|
||||
},
|
||||
end: {
|
||||
year: yearIndex,
|
||||
month: nowMonthIndex,
|
||||
day: nowDayIndex
|
||||
}
|
||||
}
|
||||
},
|
||||
prve: function() {
|
||||
const oneDay=1000*60*60*24
|
||||
const date=new Date(new Date(nowDate.year,nowDate.month,nowDate.day,0,0,0).getTime()-oneDay)
|
||||
return {
|
||||
start: {
|
||||
year:years.findIndex(v=>v==date.getFullYear()),
|
||||
month:date.getMonth()-1<0?11:date.getMonth()-1,
|
||||
day: date.getDate()-1
|
||||
},
|
||||
end: {
|
||||
year:years.findIndex(v=>v==date.getFullYear()),
|
||||
month:date.getMonth()-1<0?11:date.getMonth()-1,
|
||||
day: date.getDate()-1
|
||||
}
|
||||
}
|
||||
},
|
||||
nowMonth: function() {
|
||||
return {
|
||||
start: {
|
||||
year:yearIndex,
|
||||
month:nowMonthIndex,
|
||||
day: 0
|
||||
},
|
||||
end: {
|
||||
year:yearIndex,
|
||||
month:nowMonthIndex,
|
||||
day:new Date(nowDate.year, nowDate.month , 0).getDate() - 1
|
||||
}
|
||||
}
|
||||
},
|
||||
prveMonth: function() {
|
||||
const oneDay=1000*60*60*24
|
||||
const date=new Date(new Date(nowDate.year, nowDate.month-1,0,0,0).getTime()-oneDay)
|
||||
console.log(date.getMonth());
|
||||
return {
|
||||
start: {
|
||||
year:years.findIndex(v=>v==date.getFullYear()),
|
||||
month:date.getMonth(),
|
||||
day: 0
|
||||
},
|
||||
end: {
|
||||
year:years.findIndex(v=>v==date.getFullYear()),
|
||||
month:date.getMonth(),
|
||||
day: date.getDate()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
const data = dataMap[key]()
|
||||
setDay(data.start, data.end)
|
||||
changeDays(false,value.value)
|
||||
changeDays(true,value1.value)
|
||||
|
||||
console.log(value1.value);
|
||||
const start = returnDateString(value.value)
|
||||
const end = returnDateString(value1.value)
|
||||
|
||||
emits('confirm', {
|
||||
text: `${start}——${end}`,
|
||||
start,
|
||||
end
|
||||
})
|
||||
close()
|
||||
}
|
||||
let value = ref([
|
||||
years.length - 1,
|
||||
nowDate.month - 1,
|
||||
nowDate.day - 1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
])
|
||||
let value1 = ref([
|
||||
years.length - 1,
|
||||
nowDate.month - 1,
|
||||
nowDate.day - 1,
|
||||
23,
|
||||
59,
|
||||
59,
|
||||
])
|
||||
|
||||
let show = ref(false)
|
||||
const emits = defineEmits('close', 'open', 'confirm')
|
||||
|
||||
function toggle() {
|
||||
show.value = !show.value
|
||||
if (show.value) {
|
||||
emits('open', true)
|
||||
} else {
|
||||
emits('close', false)
|
||||
}
|
||||
}
|
||||
|
||||
function close() {
|
||||
show.value = false
|
||||
emits('close', false)
|
||||
}
|
||||
|
||||
function open() {
|
||||
show.value = true
|
||||
emits('open', true)
|
||||
}
|
||||
|
||||
function returnDateString(arr) {
|
||||
const year = years[arr[0]]
|
||||
const month = arr[1] + 1
|
||||
const day = arr[2] + 1
|
||||
const hour = ('0' + arr[3]).slice(-2)
|
||||
const min = ('0' + arr[4]).slice(-2)
|
||||
const sen = ('0' + arr[5]).slice(-2)
|
||||
return `${year}-${month}-${day} ${hour}:${min}:${sen}`
|
||||
}
|
||||
|
||||
|
||||
function confirm(e) {
|
||||
const start = returnDateString(value.value)
|
||||
const end = returnDateString(value1.value)
|
||||
console.log(start);
|
||||
console.log(end);
|
||||
emits('confirm', {
|
||||
text: `${start}——${end}`,
|
||||
start,
|
||||
end
|
||||
})
|
||||
close()
|
||||
}
|
||||
|
||||
function returnMonthStart(arr) {
|
||||
return new Date(years[arr[0]], months[arr[1]] - 1, 1).getDate();
|
||||
}
|
||||
|
||||
function returnMonthEnd(arr) {
|
||||
return new Date(years[arr[0]], months[arr[1]], 0).getDate();
|
||||
}
|
||||
|
||||
function changeDays(isDays1,arr){
|
||||
const end = returnMonthEnd(arr)
|
||||
if (end) {
|
||||
if(isDays1){
|
||||
days1.value= new Array(end).fill(1).map((v,
|
||||
index) => {
|
||||
return index + 1
|
||||
})
|
||||
}else{
|
||||
days.value= new Array(end).fill(1).map((v,
|
||||
index) => {
|
||||
return index + 1
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function bindChange(e) {
|
||||
value.value = e.detail.value
|
||||
changeDays(false, e.detail.value)
|
||||
}
|
||||
|
||||
function bindChange1(e) {
|
||||
value1.value = e.detail.value
|
||||
changeDays(true, e.detail.value)
|
||||
}
|
||||
|
||||
function getDayDate(date = new Date(), type) {
|
||||
const now = date
|
||||
if (type === 'start') {
|
||||
const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
||||
return startOfDay
|
||||
}
|
||||
if (type === 'end') {
|
||||
const endOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
|
||||
return endOfDay;
|
||||
}
|
||||
}
|
||||
|
||||
function getMonthArea(date = new Date(), type) {
|
||||
let now = date
|
||||
let currentMonthStart = new Date(now.getFullYear(), now.getMonth(), 1);
|
||||
let currentMonthEnd = new Date(now.getFullYear(), now.getMonth() + 1, 0, 23, 59, 59, 999);
|
||||
if (type === 'start') {
|
||||
return currentMonthStart
|
||||
}
|
||||
if (type === 'end') {
|
||||
return currentMonthEnd;
|
||||
}
|
||||
return {
|
||||
start: currentMonthStart,
|
||||
end: currentMonthEnd
|
||||
};
|
||||
}
|
||||
|
||||
function nullFunction() {
|
||||
|
||||
}
|
||||
|
||||
function pickend(e) {
|
||||
console.log(e);
|
||||
}
|
||||
|
||||
function pickend1(e) {
|
||||
console.log(e);
|
||||
}
|
||||
defineExpose({
|
||||
close,
|
||||
open,
|
||||
confirm,
|
||||
toggle
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.fastTime {
|
||||
.item {
|
||||
background-color: rgb(247, 247, 247);
|
||||
padding: 6rpx 40rpx;
|
||||
border-radius: 6rpx;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.top {
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
.close {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
right: 30rpx;
|
||||
}
|
||||
|
||||
.mask {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 0;
|
||||
background-color: rgba(0, 0, 0, .7);
|
||||
|
||||
.box {
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
border-radius: 16rpx 16rpx 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.fixed_b {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
padding: 30rpx;
|
||||
z-index: 100;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.picker-view {
|
||||
width: 750rpx;
|
||||
height: 300rpx;
|
||||
}
|
||||
|
||||
.item {
|
||||
line-height: 34px;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,149 @@
|
|||
<template>
|
||||
<view class="warehouseEntry">
|
||||
<ul>
|
||||
<li>
|
||||
<view>
|
||||
供应商
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入供应商名称" v-model="datas.form.purveyorName" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
<li>
|
||||
<view>
|
||||
联系电话
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入联系电话" v-model="datas.form.purveyorTelephone" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
<li>
|
||||
<view>
|
||||
地址
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入地址" v-model="datas.form.address" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
<li>
|
||||
<view>
|
||||
备注
|
||||
</view>
|
||||
<view>
|
||||
<input type="text" placeholder="请输入备注" v-model="datas.form.remark" name="" id="">
|
||||
</view>
|
||||
</li>
|
||||
</ul>
|
||||
</view>
|
||||
<view class="bottombutton">
|
||||
<up-button type="primary" style="background-color: #318AFE;color: #fff;" @tap="sumbit" :plain="true"
|
||||
text="保存"></up-button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
ref,
|
||||
computed,
|
||||
reactive,
|
||||
onMounted
|
||||
} from 'vue';
|
||||
import color from '@/commons/color.js';
|
||||
import go from '@/commons/utils/go.js';
|
||||
import {
|
||||
tbShopPurveyorput
|
||||
} from '@/http/yskApi/requestAll.js';
|
||||
let datas = reactive({
|
||||
form: {},
|
||||
})
|
||||
const props = defineProps({
|
||||
item: {
|
||||
type: String
|
||||
}
|
||||
})
|
||||
onMounted(() => {
|
||||
datas.form = JSON.parse(props.item)
|
||||
})
|
||||
|
||||
function sumbit() {
|
||||
tbShopPurveyorput({
|
||||
shopId: uni.getStorageSync("shopId"),
|
||||
|
||||
...datas.form
|
||||
}).then(res => {
|
||||
go.to('PAGES_SUPPLIER')
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
page {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.df() {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.status {
|
||||
margin: 0 32rpx;
|
||||
position: absolute;
|
||||
// top: 100%;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.warehouseEntry {
|
||||
height: 540rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
margin: 28rpx;
|
||||
padding: 1rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
>ul {
|
||||
>li {
|
||||
height: 84rpx;
|
||||
background: #fcfcfc;
|
||||
border: 2rpx solid #F9F9F9;
|
||||
margin-top: 32rpx;
|
||||
.df;
|
||||
|
||||
>view:first-child {
|
||||
width: 190rpx;
|
||||
height: 84rpx;
|
||||
line-height: 84rpx;
|
||||
// text-align: left;
|
||||
padding-left: 24rpx;
|
||||
background: #F9F9F9;
|
||||
border-radius: 8rpx 0rpx 0rpx 8rpx;
|
||||
border: 2rpx solid #F9F9F9;
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottombutton {
|
||||
margin-top: 84rpx;
|
||||
|
||||
>button {
|
||||
width: 530rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 56rpx 56rpx 56rpx 56rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
{{datas.title}}
|
||||
</view>
|
||||
<view>
|
||||
<input v-model="datas.conName" @input="inputEvent" type="text" placeholder="搜索货品ID/货品编码" />
|
||||
<input v-model="datas.conName" @input="inputEvent" type="text" placeholder="请输入耗材名称" />
|
||||
</view>
|
||||
<view @tap="toUrl('PAGES_ADD_TYPE') ">
|
||||
新增类别
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<view @tap="toUrl('PAGES_ADD_CONSUMABLES')">
|
||||
新增耗材
|
||||
</view>
|
||||
<view @tap="toUrl">
|
||||
<view @tap="toUrl('PAGES_SUPPLIER')">
|
||||
供应商管理
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -365,6 +365,7 @@
|
|||
>view:first-child {
|
||||
border-radius: 56rpx 0rpx 0rpx 56rpx;
|
||||
color: #318AFE;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
>view:last-child {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,423 @@
|
|||
<template>
|
||||
<view class="time-wrapper">
|
||||
<view v-for="(v, i) in timeList" :key="i" class="timelistbox">
|
||||
<view class="time-item" @tap="changeTime(v.value)" :class="{ 'time-selected':v.value==selected }">
|
||||
{{v.label}}
|
||||
</view>
|
||||
<view class="xian" v-if="v.value==selected "> </view>
|
||||
</view>
|
||||
</view>
|
||||
<ul class="paymentSettlement">
|
||||
<li :style="{color:datas.activeType==0?'#318AFE':''}" @tap="switchType(0)">全部</li>
|
||||
<li :style="{color:datas.activeType==1?'#318AFE':''}" @tap="switchType(1)">进货</li>
|
||||
<li :style="{color:datas.activeType==2?'#318AFE':''}" @tap="switchType(2)">退货</li>
|
||||
<li :style="{color:datas.activeType==3?'#318AFE':''}" @tap="switchType(3)">未支付</li>
|
||||
<li :style="{color:datas.activeType==4?'#318AFE':''}" @tap="switchType(4)">已付款</li>
|
||||
</ul>
|
||||
<ul class="supplier">
|
||||
<li v-for="item in datas.list" :key="item.id">
|
||||
<view style="position: relative;">
|
||||
|
||||
<view>
|
||||
<view style="font-weight: 500;font-size: 28rpx;color: #333333;">
|
||||
{{item.totalAmount}}
|
||||
</view>
|
||||
<view style="font-weight: 400;font-size: 24rpx;color: #666666;">
|
||||
应付金额(元)
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view style="font-weight: 500;font-size: 28rpx;color: #333333;">
|
||||
{{item.paidAmount}}
|
||||
</view>
|
||||
<view style="font-weight: 400;font-size: 24rpx;color: #666666;">
|
||||
已付金额(元)
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view style="font-weight: 500;font-size: 28rpx;color: #F02C45;">
|
||||
{{item.waitAmount}}
|
||||
</view>
|
||||
<view style="font-weight: 400;font-size: 24rpx;color: #666666;">
|
||||
待支付金额(元)
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.status==0"
|
||||
style="position: absolute;left: 0;top: 0;width: 88rpx;line-height: 36rpx;background: #FF895C;border-radius: 8rpx 0rpx 8rpx 0rpx;font-weight: 400;font-size: 20rpx; color: #FFFFFF; ">
|
||||
待付款
|
||||
</view>
|
||||
</view>
|
||||
<view class="df">
|
||||
<span>创建日期</span>
|
||||
<span>{{dayjs(item.createdAt).format('YYYY-MM-DD HH:mm:ss')}}</span>
|
||||
</view>
|
||||
<view class="df">
|
||||
<span>类型</span>
|
||||
<span>{{typeFilter(item.type)}}</span>
|
||||
</view>
|
||||
<view class="df">
|
||||
<span>付款时间</span>
|
||||
<span>{{dayjs(item.updatedAt).format('YYYY-MM-DD HH:mm:ss')}}</span>
|
||||
</view>
|
||||
<view>
|
||||
<up-button type="primary" style="background-color: #318AFE;color: #fff;" @tap="datas.PopUp=true;datas.form.id=item.id"
|
||||
:plain="true" text="付款"></up-button>
|
||||
<up-button type="primary" style="width: 200rpx;" @tap="toUrl(item.id)" :plain="true" text="账单付款记录">
|
||||
</up-button>
|
||||
</view>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- 取号遮罩层 -->
|
||||
<up-popup :show="datas.PopUp" :round="18" mode="center" @close="close">
|
||||
<view class="zhezhaopops">
|
||||
<view class="">
|
||||
<span></span>
|
||||
<span>付款</span>
|
||||
<up-icon @tap="datas.PopUp=false" name="close-circle-fill"></up-icon>
|
||||
</view>
|
||||
<view class="">
|
||||
付款金额<input type="text" placeholder="请输入付款金额" v-model="datas.form.paidAmount" />
|
||||
</view>
|
||||
<view class="">
|
||||
付款方式<input type="text" placeholder="请输入付款方式" v-model="datas.form.payType" />
|
||||
</view>
|
||||
<view class="">
|
||||
备注<input type="text" v-model="datas.form.remark" />
|
||||
</view>
|
||||
<up-button text="确认" @tap="confirmtow()" type="primary" class="buttomStyle"
|
||||
shape="circle"></up-button>
|
||||
</view>
|
||||
</up-popup>
|
||||
|
||||
|
||||
|
||||
|
||||
<datePickerview @confirm="datePickerConfirm" ref="datePicker"></datePickerview>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
onMounted,
|
||||
getCurrentInstance,
|
||||
ref,
|
||||
reactive
|
||||
} from 'vue';
|
||||
import dayjs from 'dayjs';
|
||||
import {
|
||||
tbShopPurveyorTransactinfo,
|
||||
tbShopPurveyorpayTransact
|
||||
} from '@/http/yskApi/requestAll.js';
|
||||
import go from '@/commons/utils/go.js'
|
||||
import datePickerview from './components/my-date-pickerview.vue'
|
||||
const timeList = [{
|
||||
label: '今天',
|
||||
value: 'today'
|
||||
},
|
||||
{
|
||||
label: '昨天',
|
||||
value: 'yesterday'
|
||||
},
|
||||
{
|
||||
label: '本周',
|
||||
value: 'circumference'
|
||||
}, {
|
||||
label: '本月',
|
||||
value: 'moon'
|
||||
},
|
||||
{
|
||||
label: '自定义',
|
||||
value: 'custom'
|
||||
}
|
||||
]
|
||||
let selected = ref('today')
|
||||
let datas = reactive({
|
||||
activeType: 0,
|
||||
list: [],
|
||||
startTime: "",
|
||||
endTime: "",
|
||||
type: "",
|
||||
status: "",
|
||||
PopUp: false,
|
||||
form: {}
|
||||
})
|
||||
const currentInstance = getCurrentInstance()
|
||||
const props = defineProps({
|
||||
id: {
|
||||
type: Number
|
||||
}
|
||||
})
|
||||
onMounted(() => {
|
||||
getlist()
|
||||
})
|
||||
let confirmtow = (id) => {
|
||||
tbShopPurveyorpayTransact({
|
||||
id,
|
||||
...datas.form
|
||||
}).then(() => {
|
||||
datas.PopUp = false
|
||||
getlist()
|
||||
})
|
||||
}
|
||||
let close = () => {
|
||||
datas.form = {}
|
||||
}
|
||||
let typeFilter = (t) => {
|
||||
const m = {
|
||||
purveyor: '进货单',
|
||||
reject: '退货单',
|
||||
cons_in: '耗材入库',
|
||||
cons_out: '耗材出库'
|
||||
}
|
||||
return m[t]
|
||||
}
|
||||
|
||||
function toUrl(id) {
|
||||
go.to('PAGES_BILL_PAYMENT', {
|
||||
id
|
||||
})
|
||||
}
|
||||
let switchType = (a) => {
|
||||
datas.activeType = a
|
||||
if (a == 0) {
|
||||
datas.type = ''
|
||||
datas.status = ''
|
||||
} else if (a == 1) {
|
||||
datas.type = 'purveyor'
|
||||
datas.status = ''
|
||||
} else if (a == 2) {
|
||||
datas.type = 'reject'
|
||||
datas.status = ''
|
||||
} else if (a == 3) {
|
||||
datas.type = ''
|
||||
datas.status = '0'
|
||||
} else if (a == 4) {
|
||||
datas.type = ''
|
||||
datas.status = '1'
|
||||
}
|
||||
getlist()
|
||||
}
|
||||
|
||||
function datePickerConfirm(e) {
|
||||
getlist(e.start, e.end)
|
||||
}
|
||||
|
||||
function getlist(start, end) {
|
||||
if (selected.value == 'today') {
|
||||
datas.startTime = dayjs().format('YYYY-MM-DD') + ' 00:00:00'
|
||||
datas.endTime = dayjs().format('YYYY-MM-DD') + ' 23:59:59'
|
||||
} else if (selected.value == 'yesterday') {
|
||||
datas.startTime = formatTime() + ' 00:00:00'
|
||||
datas.endTime = formatTime() + ' 23:59:59'
|
||||
} else if (selected.value == 'circumference') {
|
||||
datas.startTime = dayjs().add(-7, 'day').format('YYYY-MM-DD 00:00:00')
|
||||
datas.endTime = dayjs().format('YYYY-MM-DD 23:59:59')
|
||||
} else if (selected.value == 'moon') {
|
||||
datas.startTime = dayjs().add(-30, 'day').format('YYYY-MM-DD 00:00:00')
|
||||
datas.endTime = dayjs().format('YYYY-MM-DD 23:59:59')
|
||||
} else if (selected.value == 'custom') {
|
||||
datas.startTime = start
|
||||
datas.endTime = end
|
||||
}
|
||||
tbShopPurveyorTransactinfo({
|
||||
// shopId: uni.getStorageSync('shopId'),
|
||||
size: 20,
|
||||
createAt: [datas.startTime, datas.endTime],
|
||||
page: 0,
|
||||
sort: "id",
|
||||
type: datas.type,
|
||||
status: datas.status,
|
||||
purveyorId: props.id
|
||||
}).then((res) => {
|
||||
datas.list = res.content
|
||||
})
|
||||
}
|
||||
// 获取当前时间
|
||||
function getdate() {
|
||||
const dt = new Date();
|
||||
const y = dt.getFullYear();
|
||||
const m = (dt.getMonth() + 1 + "").padStart(2, "0");
|
||||
const d = (dt.getDate() + "").padStart(2, "0");
|
||||
const hh = (dt.getHours() + "").padStart(2, "0");
|
||||
const mm = (dt.getMinutes() + "").padStart(2, "0");
|
||||
const ss = (dt.getSeconds() + "").padStart(2, "0");
|
||||
return `${y}-${m}-${d}`;
|
||||
}
|
||||
// 获取昨天时间
|
||||
const formatTime = () => {
|
||||
let strDate = getdate()
|
||||
let dateFormat = new Date(strDate);
|
||||
dateFormat = dateFormat.setDate(dateFormat.getDate() - 1);
|
||||
dateFormat = new Date(dateFormat);
|
||||
let y = dateFormat.getFullYear()
|
||||
let m = (dateFormat.getMonth() + 1).toString().padStart(2, '0')
|
||||
let d = dateFormat.getDate().toString().padStart(2, '0')
|
||||
return `${y}-${m}-${d}`
|
||||
}
|
||||
|
||||
function changeTime(e) {
|
||||
selected.value = e
|
||||
if (e == 'custom') {
|
||||
currentInstance.ctx.$refs.datePicker.toggle()
|
||||
} else {
|
||||
getlist()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
page {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.time-wrapper {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
background-color: #fff;
|
||||
padding-bottom: 20rpx;
|
||||
|
||||
.timelistbox {
|
||||
position: relative;
|
||||
|
||||
.time-item {
|
||||
width: 90rpx;
|
||||
text-align: center;
|
||||
padding-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.xian {
|
||||
width: 40rpx;
|
||||
height: 3rpx;
|
||||
background-color: #459DFF;
|
||||
position: absolute;
|
||||
left: 26rpx;
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.time-selected {
|
||||
color: #459DFF;
|
||||
}
|
||||
}
|
||||
|
||||
.supplier {
|
||||
>li {
|
||||
width: 694rpx;
|
||||
height: 550rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
padding: 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
margin: 32rpx;
|
||||
|
||||
|
||||
>view:nth-child(1) {
|
||||
width: 646rpx;
|
||||
height: 160rpx;
|
||||
background: #F9F9F9;
|
||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
>view:nth-child(2),
|
||||
>view:nth-child(3),
|
||||
>view:nth-child(4) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 32rpx;
|
||||
}
|
||||
|
||||
>view:nth-child(5) {
|
||||
border-top: 2rpx solid #E5E5E5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: row-reverse;
|
||||
margin-top: 32rpx;
|
||||
padding-top: 22rpx;
|
||||
|
||||
>button {
|
||||
width: 112rpx;
|
||||
height: 48rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||
border: 2rpx solid #3189FD;
|
||||
margin: 16rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.df() {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.zhezhaopops {
|
||||
padding: 34rpx 32rpx;
|
||||
width: 594rpx;
|
||||
height: 900rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
|
||||
>view:first-child {
|
||||
.df;
|
||||
justify-content: space-between;
|
||||
|
||||
>span:nth-child(2) {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
>view:nth-child(2),
|
||||
>view:nth-child(3),
|
||||
>view:nth-child(4) {
|
||||
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
margin-top: 64rpx;
|
||||
|
||||
>input {
|
||||
margin-top: 24rpx;
|
||||
width: 492rpx;
|
||||
height: 84rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
border: 2rpx solid #E5E5E5;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
.buttomStyle {
|
||||
margin-top: 48rpx;
|
||||
width: 506rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.paymentSettlement {
|
||||
padding: 32rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background-color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,180 @@
|
|||
<template>
|
||||
<ul class="supplier">
|
||||
<li v-for="item in datas.list" :key="item.id">
|
||||
<view class="">
|
||||
<text style="font-weight: 400;font-size: 28rpx;color: #333333;">
|
||||
{{item.purveyorName}} <text style="color: #999;">({{item.purveyorTelephone}})</text>
|
||||
</text>
|
||||
<text style="font-size: 28rpx;font-weight: 400;" :style="{color:item.type==0?'#FD7B49':''}">
|
||||
{{ item.type == 0 ? '待支付' : '已完结' }}
|
||||
</text>
|
||||
</view>
|
||||
<view class="">
|
||||
<view class="">
|
||||
<view class="">
|
||||
{{item.waitAmount}}
|
||||
</view>
|
||||
<view class="">
|
||||
剩余支付金额
|
||||
</view>
|
||||
</view>
|
||||
<view class="">
|
||||
<view class="">
|
||||
{{item.waitCount}}未付
|
||||
</view>
|
||||
<view class="">
|
||||
待付款笔数
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="df">
|
||||
<span>上次进货日期</span>
|
||||
<span>{{dayjs(item.lastTransactAt).format('YYYY-MM-DD HH:mm:ss')}}</span>
|
||||
</view>
|
||||
<view class="df">
|
||||
<span>地址</span>
|
||||
<span>{{item.address}}</span>
|
||||
</view>
|
||||
<view class="df">
|
||||
<span>备注</span>
|
||||
<span>{{item.remark}}</span>
|
||||
</view>
|
||||
<view class="">
|
||||
<up-button type="primary" @tap="toUrl('PAGES_EDIT_SUPPLIER',{item:JSON.stringify(item)})" :plain="true"
|
||||
text="编辑">
|
||||
</up-button><up-button type="primary" @tap="deleteEvent(item.id)" :plain="true" text="删除">
|
||||
</up-button><up-button type="primary" style="background-color: #318AFE;color: #fff;" @tap="toUrl('PAGES_PAYMENT_SETTLEMENT',{id:item.id})"
|
||||
:plain="true" text="结款记录"></up-button>
|
||||
</view>
|
||||
</li>
|
||||
</ul>
|
||||
<view class="bottombutton">
|
||||
<up-button type="primary" style="background-color: #318AFE;color: #fff;" @tap="toUrl('PAGES_ADD_SUPPLIER')"
|
||||
:plain="true" text="添加供应商"></up-button>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
onMounted,
|
||||
reactive
|
||||
} from 'vue';
|
||||
import dayjs from 'dayjs' //时间格式库
|
||||
import go from '@/commons/utils/go.js';
|
||||
import {
|
||||
tbShopPurveyorTransact,
|
||||
tbShopPurveyordelete
|
||||
} from '@/http/yskApi/requestAll.js';
|
||||
let datas = reactive({
|
||||
list: []
|
||||
})
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
let deleteEvent = (id) => {
|
||||
tbShopPurveyordelete([id]).then(() => {
|
||||
getList()
|
||||
})
|
||||
}
|
||||
let toUrl = (url, d) => {
|
||||
go.to(url, d)
|
||||
}
|
||||
let getList = () => {
|
||||
tbShopPurveyorTransact({
|
||||
page: 0,
|
||||
size: 20,
|
||||
sort: 'id',
|
||||
shopId: uni.getStorageSync("shopId"),
|
||||
}).then(res => {
|
||||
datas.list = res.content
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
page {
|
||||
background-color: #f9f9f9;
|
||||
padding: 28rpx;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.bottombutton {
|
||||
// margin-top: 84rpx;
|
||||
position: fixed;
|
||||
bottom: 20rpx;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
|
||||
>button {
|
||||
width: 530rpx;
|
||||
height: 80rpx;
|
||||
border-radius: 56rpx 56rpx 56rpx 56rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.supplier {
|
||||
>li {
|
||||
width: 694rpx;
|
||||
height: 604rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
padding: 32rpx 24rpx;
|
||||
box-sizing: border-box;
|
||||
margin-top: 32rpx;
|
||||
|
||||
>view:first-child {
|
||||
.df;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
>view:nth-child(2) {
|
||||
width: 646rpx;
|
||||
height: 142rpx;
|
||||
background: #F9F9F9;
|
||||
border-radius: 12rpx 12rpx 12rpx 12rpx;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
text-align: center;
|
||||
margin-top: 24rpx;
|
||||
}
|
||||
|
||||
>view:nth-child(3),
|
||||
>view:nth-child(4),
|
||||
>view:nth-child(5) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 32rpx;
|
||||
}
|
||||
|
||||
>view:nth-child(6) {
|
||||
border-top: 2rpx solid #E5E5E5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: row-reverse;
|
||||
margin-top: 32rpx;
|
||||
padding-top: 32rpx;
|
||||
|
||||
>button {
|
||||
width: 112rpx;
|
||||
height: 48rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 28rpx 28rpx 28rpx 28rpx;
|
||||
border: 2rpx solid #3189FD;
|
||||
margin: 16rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.df() {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -82,22 +82,24 @@
|
|||
// text-decoration: none;
|
||||
// outline: none;
|
||||
// }
|
||||
page {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 12rpx;
|
||||
}
|
||||
|
||||
page {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
|
||||
|
||||
.callRecord {
|
||||
|
||||
>li {
|
||||
width: 694rpx;
|
||||
height: 166rpx;
|
||||
margin: 32rpx auto;
|
||||
margin: 32rpx 0;
|
||||
background: #FFFFFF;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
display: flex;
|
||||
|
|
@ -106,6 +108,7 @@
|
|||
|
||||
>view:first-child {
|
||||
padding: 0 58rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
>view:first-child {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
|
|
|
|||
33
pages.json
33
pages.json
|
|
@ -1365,7 +1365,38 @@
|
|||
"style": {
|
||||
"navigationBarTitleText": "查看详情"
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"pageId": "PAGES_SUPPLIER",
|
||||
"path": "supplier",
|
||||
"style": {
|
||||
"navigationBarTitleText": "供应商列表"
|
||||
}
|
||||
}, {
|
||||
"pageId": "PAGES_ADD_SUPPLIER",
|
||||
"path": "addsupplier",
|
||||
"style": {
|
||||
"navigationBarTitleText": "添加供应商"
|
||||
}
|
||||
}, {
|
||||
"pageId": "PAGES_EDIT_SUPPLIER",
|
||||
"path": "editsupplier",
|
||||
"style": {
|
||||
"navigationBarTitleText": "编辑供应商"
|
||||
}
|
||||
}, {
|
||||
"pageId": "PAGES_PAYMENT_SETTLEMENT",
|
||||
"path": "paymentSettlement",
|
||||
"style": {
|
||||
"navigationBarTitleText": "结款记录"
|
||||
}
|
||||
}, {
|
||||
"pageId": "PAGES_BILL_PAYMENT",
|
||||
"path": "billPayment",
|
||||
"style": {
|
||||
"navigationBarTitleText": "账单付款记录"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
|
|
|
|||
|
|
@ -213,10 +213,10 @@
|
|||
|
||||
})
|
||||
// #ifdef H5
|
||||
vdata.formData.username = '18049104914'
|
||||
vdata.formData.pwd = '123456'
|
||||
// vdata.formData.username = '19502966242'
|
||||
// vdata.formData.pwd = '11280923'
|
||||
// vdata.formData.username = '18049104914'
|
||||
// vdata.formData.pwd = '123456'
|
||||
vdata.formData.username = '15699991111'
|
||||
vdata.formData.pwd = 'qwer1234'
|
||||
// #endif
|
||||
// #ifdef MP-WEIXIN
|
||||
vdata.formData.username = '15699991111'
|
||||
|
|
|
|||
18
开发文档.md
18
开发文档.md
|
|
@ -32,3 +32,21 @@ H5, 不影响。
|
|||
* 证书私钥密码
|
||||
* 小程序AppID
|
||||
* 高德Key
|
||||
### 代码
|
||||
```javascript
|
||||
export function tbShopPurveyorTransact(params) {
|
||||
return request({
|
||||
url: '/api/tbShopPurveyorTransact',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
// 删除\编辑、添加
|
||||
export function tbShopPurveyordelete(data) {
|
||||
return request({
|
||||
url: `/api/tbShopPurveyor`,
|
||||
method: "delete-post-put",
|
||||
data
|
||||
});
|
||||
}
|
||||
```
|
||||
|
|
|
|||
Loading…
Reference in New Issue