111
This commit is contained in:
@@ -1812,6 +1812,7 @@ export default {
|
|||||||
price: "价格",
|
price: "价格",
|
||||||
buyerUsername: "买家用户名",
|
buyerUsername: "买家用户名",
|
||||||
date: "日期",
|
date: "日期",
|
||||||
|
dateTimeFormat: 'YYYY-MM-DD<br/>HH:mm',
|
||||||
// 设置
|
// 设置
|
||||||
notifications: "通知",
|
notifications: "通知",
|
||||||
notificationsTitle: "新订单通知",
|
notificationsTitle: "新订单通知",
|
||||||
|
|||||||
@@ -1863,6 +1863,7 @@ export default {
|
|||||||
price: "Price",
|
price: "Price",
|
||||||
buyerUsername: "Buyer Username",
|
buyerUsername: "Buyer Username",
|
||||||
date: "Date",
|
date: "Date",
|
||||||
|
dateTimeFormat: 'SM D, YYYY<br/> h:mm A',
|
||||||
// 设置
|
// 设置
|
||||||
notifications: "Notifications",
|
notifications: "Notifications",
|
||||||
notificationsTitle: "New order notification",
|
notificationsTitle: "New order notification",
|
||||||
|
|||||||
@@ -709,3 +709,37 @@ export {
|
|||||||
sketchToMask,
|
sketchToMask,
|
||||||
isValidUrl
|
isValidUrl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** 时间格式化-自定义格式
|
||||||
|
* @param value 时间对象|时间戳|时间字符串
|
||||||
|
* @param format 格式化字符串,默认值为 'YYYY-MM-DD HH:mm:ss'
|
||||||
|
* @returns 格式化后的时间字符串
|
||||||
|
*/
|
||||||
|
export function FormatDate(value, format = 'YYYY-MM-DD HH:mm:ss') {
|
||||||
|
const d = new Date(value);
|
||||||
|
if (!d || isNaN(d.getTime())) return 'Invalid Date';
|
||||||
|
const pad = (n) => String(n).padStart(2, '0');
|
||||||
|
const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
||||||
|
const tokens = {
|
||||||
|
YYYY: d.getFullYear(),
|
||||||
|
YY: String(d.getFullYear()).slice(-2),
|
||||||
|
MM: pad(d.getMonth() + 1),
|
||||||
|
M: d.getMonth() + 1,
|
||||||
|
SM: months[d.getMonth()],
|
||||||
|
DD: pad(d.getDate()),
|
||||||
|
D: d.getDate(),
|
||||||
|
HH: pad(d.getHours()),
|
||||||
|
H: d.getHours(),
|
||||||
|
hh: pad(d.getHours() % 12 || 12),
|
||||||
|
h: d.getHours() % 12 || 12,
|
||||||
|
mm: pad(d.getMinutes()),
|
||||||
|
m: d.getMinutes(),
|
||||||
|
ss: pad(d.getSeconds()),
|
||||||
|
s: d.getSeconds(),
|
||||||
|
A: d.getHours() < 12 ? 'AM' : 'PM',
|
||||||
|
a: d.getHours() < 12 ? 'am' : 'pm'
|
||||||
|
}
|
||||||
|
const reg = new RegExp(Object.keys(tokens).join('|'), 'g')
|
||||||
|
return format.replace(reg, match => tokens[match]);
|
||||||
|
}
|
||||||
|
|||||||
@@ -168,12 +168,18 @@
|
|||||||
> .session {
|
> .session {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 0.1rem;
|
||||||
> .content {
|
> .content {
|
||||||
max-height: 100%;
|
padding: 0.4rem 1.5rem;
|
||||||
padding: 2.4rem;
|
border: 2rem solid transparent;
|
||||||
border: 1px solid #b0b0b0;
|
border-right-width: 0.4rem;
|
||||||
|
border-left-width: 0.4rem;
|
||||||
border-radius: 2.4rem;
|
border-radius: 2.4rem;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
box-shadow: 0 0 0 0.1rem #b0b0b0;
|
||||||
|
// margin: 0.2rem;
|
||||||
|
|
||||||
> .title {
|
> .title {
|
||||||
font-size: 2.2rem;
|
font-size: 2.2rem;
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
<button class="home-btn" @click="onBackToHome">
|
<button class="home-btn" @click="onBackToHome">
|
||||||
{{ $t("ApplySeller.backToHomepage") }}
|
{{ $t("ApplySeller.backToHomepage") }}
|
||||||
</button>
|
</button>
|
||||||
<div class="tip">ID: {{ userId }}</div>
|
<!-- <div class="tip">ID: {{ userId }}</div> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -63,7 +63,6 @@
|
|||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.seller-review {
|
.seller-review {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
width: 60rem;
|
|
||||||
height: 90%;
|
height: 90%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -83,6 +82,7 @@
|
|||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
> .tip {
|
> .tip {
|
||||||
|
width: 66rem;
|
||||||
font-family: pingfang_regular;
|
font-family: pingfang_regular;
|
||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
line-height: 170%;
|
line-height: 170%;
|
||||||
@@ -94,8 +94,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
> .step-list {
|
> .step-list {
|
||||||
|
width: 60rem;
|
||||||
margin: 2.6rem 0;
|
margin: 2.6rem 0;
|
||||||
width: 100%;
|
|
||||||
padding: 1.6rem;
|
padding: 1.6rem;
|
||||||
background-color: #f9f9f9;
|
background-color: #f9f9f9;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
@realTime="onChange"
|
@realTime="onChange"
|
||||||
outputType="png"
|
outputType="png"
|
||||||
:full="true"
|
:full="true"
|
||||||
|
:centerBox="centerBox"
|
||||||
></VueCropper>
|
></VueCropper>
|
||||||
</div>
|
</div>
|
||||||
<div class="clip_opterate">
|
<div class="clip_opterate">
|
||||||
@@ -57,6 +58,10 @@
|
|||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
default: () => ""
|
default: () => ""
|
||||||
|
},
|
||||||
|
centerBox: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const attrs = useAttrs()
|
const attrs = useAttrs()
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
<p class="tip"> </p>
|
<p class="tip"> </p>
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<image-clip-dialog ref="imageClipDialogRef" />
|
<image-clip-dialog ref="imageClipDialogRef" centerBox />
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
...res
|
...res
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
data.socialLinks = JSON.stringify(data.socialLinks)
|
data.socialLinks = JSON.stringify(data.socialLinks.filter((v) => v))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
data.socialLinks = JSON.stringify([])
|
data.socialLinks = JSON.stringify([])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,27 +42,27 @@
|
|||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="images">
|
<div class="images">
|
||||||
<img
|
<img
|
||||||
v-for="v in v.item.slice(0, maxItemNum)"
|
v-for="v in v.items.slice(0, maxItemNum)"
|
||||||
:key="v.id"
|
:key="v.id"
|
||||||
:src="v.url"
|
:src="v.url"
|
||||||
/>
|
/>
|
||||||
<span v-if="v.item.length > maxItemNum"
|
<span v-if="v.items.length > maxItemNum"
|
||||||
>+{{ v.item.length - maxItemNum }} more</span
|
>+{{ v.items.length - maxItemNum }} more</span
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="titles">
|
<div class="titles">
|
||||||
<div v-for="v in v.item.slice(0, maxItemNum)" :key="v.id">
|
<div v-for="v in v.items.slice(0, maxItemNum)" :key="v.id">
|
||||||
{{ v.title }}
|
{{ v.title }}
|
||||||
</div>
|
</div>
|
||||||
<span v-if="v.item.length > maxItemNum">...</span>
|
<span v-if="v.items.length > maxItemNum">...</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="price">{{ v.price }}</div>
|
<div class="price">{{ v.price }}</div>
|
||||||
<div class="buyer-username">{{ v.username }}</div>
|
<div class="buyer-username">{{ v.username }}</div>
|
||||||
<div class="date">
|
<div
|
||||||
<div>{{ v.date }}</div>
|
class="date"
|
||||||
<div>{{ v.time }}</div>
|
v-html="FormatDate(v.date, $t('Seller.dateTimeFormat'))"
|
||||||
</div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="null" v-show="list.length === 0 && !loading && finish">
|
<div class="null" v-show="list.length === 0 && !loading && finish">
|
||||||
@@ -80,6 +80,7 @@
|
|||||||
import { ref, onMounted, onBeforeUnmount, computed } from "vue"
|
import { ref, onMounted, onBeforeUnmount, computed } from "vue"
|
||||||
import { Https } from "@/tool/https"
|
import { Https } from "@/tool/https"
|
||||||
import { useI18n } from "vue-i18n"
|
import { useI18n } from "vue-i18n"
|
||||||
|
import { FormatDate } from "@/tool/util"
|
||||||
const { t } = useI18n()
|
const { t } = useI18n()
|
||||||
const totals_obj = ref({
|
const totals_obj = ref({
|
||||||
totalRevenue: "--",
|
totalRevenue: "--",
|
||||||
@@ -177,6 +178,7 @@
|
|||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
observer.disconnect()
|
observer.disconnect()
|
||||||
})
|
})
|
||||||
|
|
||||||
const formatTimestamp = (ts) => {
|
const formatTimestamp = (ts) => {
|
||||||
const d = new Date(ts)
|
const d = new Date(ts)
|
||||||
const h = d.getHours()
|
const h = d.getHours()
|
||||||
|
|||||||
@@ -147,15 +147,14 @@
|
|||||||
.settings-index {
|
.settings-index {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
margin: 0 16rem;
|
margin: 0 10rem;
|
||||||
|
padding: 0 6rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 4.2rem;
|
gap: 4.2rem;
|
||||||
> div {
|
> div {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: 4.2rem;
|
|
||||||
> div {
|
> div {
|
||||||
|
margin-bottom: 4.2rem;
|
||||||
border-radius: 1.2rem;
|
border-radius: 1.2rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
border: 0.15rem solid #d1d1d1;
|
border: 0.15rem solid #d1d1d1;
|
||||||
|
|||||||
Reference in New Issue
Block a user