Compare commits
No commits in common. "c4a23be60c90e4067632e95af119cc5d897e73bd" and "38c39e193006f51b97c1605f4fdb8527b37feb29" have entirely different histories.
c4a23be60c
...
38c39e1930
|
@ -260,11 +260,11 @@ const util = {
|
|||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 替换图片的宽度为最大宽度100% (移动端解析html富文本专用)
|
||||
* @param {Object} value 富文本
|
||||
*/
|
||||
imgReplace(value) {
|
||||
// 替换图片的宽度为最大宽度100% (移动端解析html富文本专用)
|
||||
imgReplace(value, th) {
|
||||
if (!th) {
|
||||
value = value.replace(/<img src="/ig, '<img src="' + util.config.host);
|
||||
}
|
||||
return value.replace(/<p([\s\w"=\/\.:;]+)((?:(style="[^"]+")))/ig, '<p')
|
||||
.replace(/<p>/ig, '<p style="font-size: 15px; line-height: 25px;">')
|
||||
.replace(/<img([\s\w"-=\/\.:;]+)((?:(height="[^"]+")))/ig, '<img$1')
|
||||
|
|
|
@ -317,6 +317,13 @@ function handleDate(timestamp) {
|
|||
@click="handleMenu($event, item)">
|
||||
<view class="item rows ptb20 plr30" @click.stop="handleChat(item)">
|
||||
<view class="image wh90 pr">
|
||||
<!-- <template v-if="item.groupId == null">
|
||||
<image class="cir wh90" :src="item.callbackJson.from_url" mode="aspectFill" />
|
||||
</template>
|
||||
<template v-else>
|
||||
<image class="cir wh90" :src="item.groupChatDTO.groupFaceUrl" mode="aspectFill" />
|
||||
</template> -->
|
||||
|
||||
<image class="cir wh90" :src="item.avatar" mode="aspectFill" />
|
||||
<view class="mark pa t0 r0 cfff f22 cir" v-if="item.unreadCount">{{ item.unreadCount }}
|
||||
</view>
|
||||
|
@ -324,6 +331,12 @@ function handleDate(timestamp) {
|
|||
<view class="col f1 ml20">
|
||||
<view class="rows">
|
||||
<view class="name f1 thd c333 f32">{{ item.name }}</view>
|
||||
<!-- <template v-if="item.groupId == null">
|
||||
<view class="name f1 thd c333 f32">{{ item.callbackJson.from_name }}</view>
|
||||
</template>
|
||||
<template v-else>
|
||||
<view class="name f1 thd c333 f32">{{ item.groupChatDTO.name }}</view>
|
||||
</template> -->
|
||||
<view class="datetime c999 f22">
|
||||
{{ util.formatTime('MM-dd HH:mm', item.MsgTime) }}</view>
|
||||
</view>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
getCurrentInstance,
|
||||
defineProps,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
} from 'vue'
|
||||
// 工具库
|
||||
import util from '@/common/js/util'
|
||||
|
@ -17,11 +16,8 @@
|
|||
const {
|
||||
proxy
|
||||
} = getCurrentInstance()
|
||||
const props = defineProps({
|
||||
modelValue: String
|
||||
})
|
||||
//
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
|
||||
const emits = defineEmits(['update:modelValue']);
|
||||
// 编辑器内容
|
||||
const formats = reactive({})
|
||||
// 编辑器上下文对象
|
||||
|
@ -37,33 +33,17 @@
|
|||
const colorKey = ref('forecolor')
|
||||
|
||||
onMounted(() => {
|
||||
// 创建编辑器上下文对象
|
||||
// 初始化
|
||||
onEditorReady()
|
||||
})
|
||||
|
||||
// 创建编辑器上下文对象
|
||||
// 初始化
|
||||
function onEditorReady() {
|
||||
uni.createSelectorQuery().select('#editor').context((res) => {
|
||||
editorCtx.value = res.context
|
||||
}).exec()
|
||||
}
|
||||
|
||||
// 初始化编辑器上下文对象
|
||||
function init(html) {
|
||||
editorCtx.value.setContents({
|
||||
html,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取内容
|
||||
function getEditorContents() {
|
||||
editorCtx.value.getContents({
|
||||
success: rs => {
|
||||
return rs
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 撤销
|
||||
function undo() {
|
||||
editorCtx.value.undo()
|
||||
|
@ -85,7 +65,7 @@
|
|||
} = event.target.dataset
|
||||
if (!name) return
|
||||
editorCtx.value.format(name, value)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑器状态被变化
|
||||
|
@ -178,16 +158,6 @@
|
|||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 富文本编辑
|
||||
function handleEditorInput(event) {
|
||||
emit('update:modelValue', event.detail.html)
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init,
|
||||
getEditorContents,
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
@ -251,8 +221,9 @@
|
|||
|
||||
<!-- 内容 -->
|
||||
<view class="main">
|
||||
<editor id="editor" class="ql-container" placeholder="在此输入产品详情" showImgSize showImgToolbar showImgResize
|
||||
@statuschange="onStatusChange" @ready="onEditorReady" @input="handleEditorInput">
|
||||
<editor id="editor" class="ql-container" placeholder="在此输入产品详情" showImgSize
|
||||
showImgToolbar showImgResize @statuschange="onStatusChange" @ready="onEditorReady"
|
||||
@input="$emit('update:modelValue', $event.target.value)">
|
||||
</editor>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
"name" : "九亿",
|
||||
"appid" : "__UNI__08B31BC",
|
||||
"description" : "",
|
||||
"versionName" : "1.0.7",
|
||||
"versionCode" : 1007,
|
||||
"versionName" : "1.0.6",
|
||||
"versionCode" : 1006,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<script setup>
|
||||
/**
|
||||
* 账号冻结
|
||||
* 账号挂失
|
||||
*/
|
||||
import {
|
||||
ref,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<script setup>
|
||||
/**
|
||||
* 账号解冻
|
||||
* 账号挂失
|
||||
*/
|
||||
import {
|
||||
ref,
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
</view>
|
||||
|
||||
<view class="line" @click="link('/pages/login/unfreezeAccount')">
|
||||
<view class="title">账号解冻</view>
|
||||
<view class="title">解冻账号</view>
|
||||
<view class="content">风险解除后,可选择解除冻结</view>
|
||||
</view>
|
||||
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
screenHeight,
|
||||
bottomSafeAreaHeight
|
||||
} from '@/components/public/Mixins.js'
|
||||
import JyCommonHead from '@/components/public/jy-common-head'
|
||||
|
||||
const PayUse = ref(false)
|
||||
// 我是关闭服务
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
ref,
|
||||
inject
|
||||
} from 'vue'
|
||||
import JyCommonHead from '@/components/public/jy-common-head'
|
||||
import {
|
||||
useStore
|
||||
} from 'vuex'
|
||||
|
|
|
@ -212,10 +212,7 @@ function sendMsg(param) {
|
|||
data: param.data,
|
||||
}).then((rs) => {
|
||||
if (rs.code == 200) {
|
||||
getHistory({
|
||||
msgId: '',
|
||||
limit: 1,
|
||||
})
|
||||
getHistory()
|
||||
param.success ? param.success() : ''
|
||||
return
|
||||
}
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
// 发布商品
|
||||
import {
|
||||
ref,
|
||||
reactive,
|
||||
getCurrentInstance,
|
||||
nextTick
|
||||
reactive
|
||||
} from 'vue'
|
||||
//
|
||||
import {
|
||||
|
@ -16,16 +14,13 @@
|
|||
import util from '@/common/js/util.js'
|
||||
// 编辑器
|
||||
import editorArea from '@/components/public/editor/editor'
|
||||
const {
|
||||
proxy
|
||||
} = getCurrentInstance()
|
||||
|
||||
// 表单
|
||||
const form = reactive({
|
||||
id: '',
|
||||
categoryId: '',
|
||||
sliderImage: [],
|
||||
specs: [],
|
||||
infoRichText: '',
|
||||
})
|
||||
// 分类
|
||||
const category = reactive([])
|
||||
|
@ -54,10 +49,6 @@
|
|||
form.cost = detail.cost
|
||||
// 商品佣金
|
||||
form.commission = detail.commission
|
||||
// 商品详情
|
||||
form.infoRichText = detail.infoRichText || ''
|
||||
// 富文本编辑器初始化
|
||||
proxy.$refs.editorAreaRef.init(form.infoRichText)
|
||||
// 规格
|
||||
form.specs = detail.specs.map(item => {
|
||||
return {
|
||||
|
@ -186,45 +177,6 @@
|
|||
const data = {
|
||||
...form
|
||||
}
|
||||
console.log('data', data)
|
||||
|
||||
if (!data.sliderImage[0]) {
|
||||
util.alert('商品图片不能为空')
|
||||
return
|
||||
}
|
||||
if (!data.categoryId) {
|
||||
util.alert('商品类目不能为空')
|
||||
return
|
||||
}
|
||||
if (!data.specs[0]) {
|
||||
util.alert('商品规格不能为空')
|
||||
return
|
||||
}
|
||||
if (!data.price) {
|
||||
util.alert('商品价格不能为空')
|
||||
return
|
||||
}
|
||||
if (!data.cost) {
|
||||
util.alert('商品成本价不能为空')
|
||||
return
|
||||
}
|
||||
|
||||
// 查找规格是否有空值
|
||||
for (let i = 0; i < data.specs.length; i++) {
|
||||
let item = data.specs[i]
|
||||
if (!item.image) {
|
||||
util.alert('规格图片不能为空')
|
||||
return
|
||||
}
|
||||
if (!item.sku) {
|
||||
util.alert('规格名称不能为空')
|
||||
return
|
||||
}
|
||||
if (!item.stock) {
|
||||
util.alert('规格库存不能为空')
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 轮播图
|
||||
data.sliderImage = data.sliderImage.join(',')
|
||||
|
@ -238,7 +190,6 @@
|
|||
content: '商品发布成功,请等待后台审核',
|
||||
showCancel: false,
|
||||
}).then(() => {
|
||||
uni.$emit('updateUserProduct')
|
||||
uni.navigateBack()
|
||||
})
|
||||
return
|
||||
|
@ -260,7 +211,7 @@
|
|||
<view class="imgList mt20">
|
||||
<view class="imgs" v-for="(item,index) in form.sliderImage">
|
||||
<image class="wh120 br10" :src="item" mode="aspectFill" />
|
||||
<view class="close" @click="removeImage(index)">
|
||||
<view class="close">
|
||||
<uni-icons type="clear" color="#f00" size="40rpx" />
|
||||
</view>
|
||||
</view>
|
||||
|
@ -376,7 +327,7 @@
|
|||
</view>
|
||||
|
||||
<view class="main area editor">
|
||||
<editorArea ref="editorAreaRef" v-model="form.infoRichText" />
|
||||
<!-- <editorArea v-model="form.infoRichText" /> -->
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
|
|
@ -92,10 +92,7 @@
|
|||
}
|
||||
}).then(rs => {
|
||||
if (rs.code == 200) {
|
||||
//
|
||||
const result = rs.data
|
||||
if (result.infoRichText) result.infoRichText = util.imgReplace(result.infoRichText)
|
||||
Object.assign(detail, {}, result)
|
||||
Object.assign(detail, {}, rs.data)
|
||||
return
|
||||
}
|
||||
util.alert({
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
} from 'vue'
|
||||
import {
|
||||
onLoad,
|
||||
onUnload,
|
||||
onReachBottom,
|
||||
onPullDownRefresh
|
||||
} from "@dcloudio/uni-app"
|
||||
|
@ -27,15 +26,8 @@
|
|||
onLoad(() => {
|
||||
// 获取列表
|
||||
getList()
|
||||
// 开启监听
|
||||
addListener()
|
||||
})
|
||||
|
||||
onUnload(() => {
|
||||
// 关闭监听
|
||||
removeListener()
|
||||
})
|
||||
|
||||
|
||||
onReachBottom(() => {
|
||||
// 获取更多商品
|
||||
getMoreList()
|
||||
|
@ -46,19 +38,6 @@
|
|||
refeshList()
|
||||
})
|
||||
|
||||
// 开启监听
|
||||
function addListener() {
|
||||
uni.$on('updateUserProduct', () => {
|
||||
// 重载商品列表
|
||||
refeshList()
|
||||
})
|
||||
}
|
||||
|
||||
// 关闭监听
|
||||
function removeListener() {
|
||||
uni.$off('updateUserProduct')
|
||||
}
|
||||
|
||||
// 重载商品列表
|
||||
function refeshList() {
|
||||
if (product.list.length >= product.total) return
|
||||
|
|
|
@ -63,7 +63,7 @@ deleteVideo 删除视频
|
|||
selectAddress 选择地址
|
||||
updateOrderList 更新订单列表
|
||||
updateOrderDetail 更新订单详情
|
||||
updateUserProduct 更新用户商品
|
||||
|
||||
|
||||
缓存
|
||||
---
|
||||
|
|
Loading…
Reference in New Issue