Browse Source

Merge pull request 'zq-orderListTwo-0813' (#109) from zq-orderListTwo-0813 into master

Reviewed-on: #109
pull/113/head
zhangqi 2 weeks ago
parent
commit
1a64e9e911
  1. 2
      src/assets/site/sitesem.svg
  2. 23
      src/components/GuipInput.vue
  3. 30
      src/components/GuipRadio.vue
  4. 23
      src/components/GuipSelect.vue
  5. 21
      src/components/SliderMenu.vue
  6. 52
      src/components/Tooltip.vue
  7. 23
      src/components/site/addSiteStep/step2.vue
  8. 4
      src/components/site/serviceSetting/linkSet.vue
  9. 3
      src/style/theme/index.css
  10. 7
      src/views/agent/siteAdd.vue
  11. 5
      src/views/agent/siteList.vue

2
src/assets/site/sitesem.svg

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

23
src/components/GuipInput.vue

@ -1,7 +1,7 @@
<template> <template>
<el-form-item :style="{ ...styleObject }" :required="required" <el-form-item :style="{ ...styleObject}" :required="required"
:class="[{ 'column': column }, { 'w510': addClass == 'w510' }, { 'w388': addClass == 'w388' }, 'form-item']" :label="label" :class="[{ 'column': column }, { 'w510': addClass == 'w510' }, { 'w388': addClass == 'w388' }, 'form-item']" :label="label"
:prop="prop" :rules="rules"> :prop="prop" :rules="rules" >
<p v-if="desc" class="desc_right">{{ desc }}</p> <p v-if="desc" class="desc_right">{{ desc }}</p>
<el-input :type="type" v-bind="$attrs" :placeholder="placeholder1" :disabled="disabled" :maxlength="maxlength1" <el-input :type="type" v-bind="$attrs" :placeholder="placeholder1" :disabled="disabled" :maxlength="maxlength1"
:style="{ width: width, height: height }" :value="inputValue" :minLength="minLength1" :show-word-limit="showWordLimit" :style="{ width: width, height: height }" :value="inputValue" :minLength="minLength1" :show-word-limit="showWordLimit"
@ -147,4 +147,23 @@ export default {
pointer-events: none; pointer-events: none;
/* 防止单位文本影响输入框的点击事件 */ /* 防止单位文本影响输入框的点击事件 */
} }
// .custom-form-item {
// ::v-deep .el-form-item__content {
// display: flex;
// flex-direction: column;
// align-items: flex-start;
// }
// .input-wrapper {
// position: relative;
// width: 100%;
// }
// ::v-deep .el-form-item__error {
// position: relative;
// margin-top: 4px;
// padding-top: 0;
// line-height: 1;
// }
// }
</style> </style>

30
src/components/GuipRadio.vue

@ -173,5 +173,35 @@ export default {
/* 自定义样式 */ /* 自定义样式 */
.el-radio-group { .el-radio-group {
margin: 10px 0; margin: 10px 0;
display: flex;
justify-content: flex-start;
gap: 20px 24px;
flex-wrap: wrap;
}
.custom-form-item {
::v-deep .el-form-item__content {
display: flex;
flex-direction: column;
align-items: flex-start;
min-height: auto; /* 允许高度自由扩展 */
}
/* 错误提示样式调整 */
::v-deep .el-form-item__error {
position: relative; /* 改为相对定位 */
margin-top: 4px; /* 与单选框组保持间距 */
padding-top: 0;
line-height: 1.5;
white-space: normal; /* 允许错误信息换行 */
}
/* 单选框组布局调整 */
.el-radio-group {
margin: 10px 0;
display: flex;
flex-wrap: wrap;
gap: 20px 24px;
width: 100%; /* 确保宽度填满 */
}
} }
</style> </style>

23
src/components/GuipSelect.vue

@ -142,3 +142,26 @@ export default {
} }
} }
</script> </script>
<style scoped lang="scss">
// .custom-form-item {
// ::v-deep .el-form-item__content {
// display: flex;
// flex-direction: column;
// align-items: flex-start;
// min-height: auto; /* */
// }
// ::v-deep .el-form-item__error {
// position: relative; /* */
// margin-top: 4px; /* */
// padding-top: 0;
// line-height: 1;
// white-space: normal; /* */
// }
// /* Select */
// .el-select {
// width: 100%;
// }
// }
</style>

21
src/components/SliderMenu.vue

@ -21,10 +21,10 @@
<el-submenu v-if="item.children" :key="item.index" :index="item.index"> <el-submenu v-if="item.children" :key="item.index" :index="item.index">
<template slot="title"> <template slot="title">
<SvgIcon1 :iconPath="require(`@/assets/menu/${item.icon}.svg`)" defaultColor="#8A9099" <SvgIcon1 :iconPath="require(`@/assets/menu/${item.icon}.svg`)" defaultColor="#8A9099"
activeColor="#006AFF" :isActive="item.index == currentMenuItem && currentMenuItem[index].substring(0,1) && isCollapse" /> activeColor="#006AFF" :isActive="item.index == currentMenuItem && currentMenuItem['index'].substring(0,1) && isCollapse" />
<span class="title_text" >{{ item.title }}</span> <span class="title_text" >{{ item.title }}</span>
</template> </template>
<el-menu-item style="padding: 0 22px 0 32px;" v-for="subItem in item.children" :key="subItem.index" <el-menu-item style="padding: 0 22px 0 20px;" v-for="subItem in item.children" :key="subItem.index"
:index="subItem.index" @click="handleSelect(subItem.index, [item.index, subItem.index], subItem)"> :index="subItem.index" @click="handleSelect(subItem.index, [item.index, subItem.index], subItem)">
{{ subItem.title }} {{ subItem.title }}
</el-menu-item> </el-menu-item>
@ -32,8 +32,8 @@
<el-menu-item v-else :index="item.index" :key="item.index" @click="handleSelect(item.index, [item.index], item)"> <el-menu-item v-else :index="item.index" :key="item.index" @click="handleSelect(item.index, [item.index], item)">
<div class="flex"> <div class="flex">
<SvgIcon1 :iconPath="require(`@/assets/menu/${item.icon}.svg`)" defaultColor="#8A9099" <SvgIcon1 :iconPath="require(`@/assets/menu/${item.icon}.svg`)" defaultColor="#8A9099"
activeColor="#006AFF" :isActive="item.index == currentMenuItem && currentMenuItem[index]" /> activeColor="#006AFF" :isActive="item.index == (currentMenuItem && currentMenuItem['index'])" />
<span class="title_text" slot="title">{{ item.title }}</span> <span class="title_text" slot="title">{{ item.title}}</span>
</div> </div>
</el-menu-item> </el-menu-item>
</template> </template>
@ -50,6 +50,7 @@ import SvgIcon1 from '@/components/SvgIcon1.vue';
import GuipToolTip from '@/components/GuipToolTip.vue'; import GuipToolTip from '@/components/GuipToolTip.vue';
export default { export default {
name: 'SliderMenu', name: 'SliderMenu',
options: { styleIsolation: "shared" },
components: { components: {
SvgIcon1, SvgIcon1,
GuipToolTip, GuipToolTip,
@ -215,22 +216,22 @@ export default {
} }
.el-menu-item.is-active { }
font-weight: bold; ::v-deep .el-menu-item.is-active .title_text{
} font-weight: bold;
color: #006AFF !important;
} }
.title_img { .title_img {
width: 16px; width: 16px;
margin-right: 4px; margin-right: 4px;
} }
.title_text { .title_text {
margin-left: 4px; margin-left: 4px;
font-size: 14px; font-size: 14px;
font-weight: bold; font-weight: normal;
display: block; display: block;
color: #1E2226;
} }
.el-menu--collapse .title_text { .el-menu--collapse .title_text {

52
src/components/Tooltip.vue

@ -1,7 +1,8 @@
<template> <template>
<transition name="fade"> <transition name="fade">
<div v-if="visible" :class="['position-message', type, position]" id="qq" :style="positionStyle"> <div v-if="visible" :class="['position-message', type, position]" id="qq" :style="positionStyle">
<i :class="iconClass"></i> <!-- <i :class="iconClass"></i>/ -->
<img :src="defaultImages[type]" class="message-image" />
<span>{{ message }}</span> <span>{{ message }}</span>
</div> </div>
</transition> </transition>
@ -30,7 +31,13 @@ export default {
data() { data() {
return { return {
visible: false, visible: false,
positionStyle: {} positionStyle: {},
defaultImages:{
success: require('@/assets/message_Success.png'),
info: require('@/assets/message_Warning.png'),
warning: require('@/assets/message_Warning.png'),
error: require('@/assets/message_error.png')
}
} }
}, },
computed: { computed: {
@ -67,18 +74,24 @@ export default {
const targetRect = targetEl.getBoundingClientRect(); const targetRect = targetEl.getBoundingClientRect();
const messageWidth = this.$el.offsetWidth; const messageWidth = this.$el.offsetWidth;
const viewportWidth = window.innerWidth; const viewportWidth = window.innerWidth;
const messageHeight = this.$el.offsetHeight;
// //
let left = targetRect.left + targetRect.width / 2 - messageWidth / 2; let left = targetRect.left + targetRect.width / 2 - messageWidth / 2;
let top = 0;
// //
if (left < 0) { if (left < 0) {
left = targetRect.left; // left = targetRect.left; //
} else if (left + messageWidth > viewportWidth) { } else if (left + messageWidth > viewportWidth) {
left = viewportWidth - messageWidth - (viewportWidth -targetRect.right); // left = viewportWidth - messageWidth - (viewportWidth -targetRect.right); //
} }
if(this.position == 'top'){
top =`${targetRect.top + window.scrollY - this.offset - messageHeight}px`
}else{
top = `${targetRect.top + window.scrollY + this.offset + messageHeight}px`
}
this.positionStyle = { this.positionStyle = {
top: `${targetRect.bottom + window.scrollY + this.offset}px`, top,
left: `${left}px`, left: `${left}px`,
right: 'auto', // right right: 'auto', // right
}; };
@ -87,40 +100,49 @@ export default {
} }
</script> </script>
<style scoped> <style scoped lang="scss">
.position-message { .position-message {
position: absolute; position: absolute;
min-width: 100px; min-width: 100px;
padding: 8px 12px; padding: 14px 21px;
border-radius: 4px; border-radius: 4px;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
z-index: 9999; z-index: 9999;
display: flex; display: flex;
align-items: center; align-items: center;
background: red; background: #FFFFFF;
box-sizing: border-box;
box-shadow: 0px 3px 8px 0px rgba(0, 0, 0, 0.16);
span{
letter-spacing: 0.08em;
color: #626573;
}
}
.message-image {
width: 18px;
height: 18px;
margin-right: 10px;
} }
.position-message i { .position-message i {
margin-right: 6px; margin-right: 6px;
font-size: 16px; font-size: 16px;
} }
.position-message.info { .position-message.info {
background-color: #f4f4f5; /* background-color: #f4f4f5;
color: #909399; color: #909399;
border: 1px solid #e9e9eb; border: 1px solid #e9e9eb; */
} }
.position-message.success { .position-message.success {
background-color: #f0f9eb; /* background-color: #f0f9eb;
color: #67c23a; color: #67c23a;
border: 1px solid #e1f3d8; border: 1px solid #e1f3d8; */
} }
.position-message.error { .position-message.error {
background-color: #fef0f0; /* background-color: #fef0f0;
color: #f56c6c; color: #f56c6c;
border: 1px solid #fde2e2; border: 1px solid #fde2e2; */
} }
.fade-enter-active, .fade-enter-active,

23
src/components/site/addSiteStep/step2.vue

@ -76,7 +76,7 @@
<template #trigger> <template #trigger>
<span v-if="selectWxpay && (selectWxpay.short_name || selectWxpay.account)">{{ selectWxpay.short_name }} {{ selectWxpay.account }}</span> <span v-if="selectWxpay && (selectWxpay.short_name || selectWxpay.account)">{{ selectWxpay.short_name }} {{ selectWxpay.account }}</span>
<span v-else-if="wxpayList.length === 0">暂无收款账号稍后配置</span> <span v-else-if="wxpayList.length === 0">暂无收款账号稍后配置</span>
<span v-else>未绑定微信收款</span> <span class="trigger_placeholder" v-else>未绑定微信收款</span>
</template> </template>
<!-- 自定义下拉选项 --> <!-- 自定义下拉选项 -->
@ -121,7 +121,7 @@
<template #trigger> <template #trigger>
<span v-if="selectAlipay && (selectAlipay.short_name || selectAlipay.account)">{{ selectAlipay.short_name }} {{ selectAlipay.account }}</span> <span v-if="selectAlipay && (selectAlipay.short_name || selectAlipay.account)">{{ selectAlipay.short_name }} {{ selectAlipay.account }}</span>
<span v-else-if="alipayList.length === 0">暂无收款账号稍后配置</span> <span v-else-if="alipayList.length === 0">暂无收款账号稍后配置</span>
<span v-else>未绑定支付宝收款</span> <span class="trigger_placeholder" v-else>未绑定支付宝收款</span>
</template> </template>
<template #normal> <template #normal>
@ -289,7 +289,7 @@
</div> </div>
<div class="register-btns"> <div class="register-btns">
<GuipButton type="system" :btnstyle="{ width: '144px', height: '46px' }" @click="jumpStep">跳过</GuipButton> <GuipButton type="system" :btnstyle="{ width: '144px', height: '46px' }" @click="jumpStep">跳过</GuipButton>
<GuipButton type="primary" :btnstyle="{ width: '144px', height: '46px' }" @click="nextStep">下一步</GuipButton> <GuipButton ref="nextStepRef" type="primary" :btnstyle="{ width: '144px', height: '46px' }" @click="nextStep">下一步</GuipButton>
</div> </div>
</div> </div>
</template> </template>
@ -602,7 +602,13 @@ export default {
if(this.bindPddId) data.pay_config = { 11: this.bindPddId } if(this.bindPddId) data.pay_config = { 11: this.bindPddId }
} }
if(Object.keys(data.pay_config).length === 0) { if(Object.keys(data.pay_config).length === 0) {
this.$Message.error('请绑定收款方式'); // this.$Message.error('');
this.$positionMessage({
type: 'error',
message: '请绑定收款方式',
target: this.$refs['nextStepRef'], // DOM
position: 'top'
})
return false return false
} }
@ -649,7 +655,14 @@ export default {
} }
} }
} }
.trigger_placeholder{
font-family: Microsoft YaHei UI;
color: #8A9099;
font-size: 14px;
font-weight: normal;
line-height: normal;
letter-spacing: 0.08em;
}
.register-btns { .register-btns {
position: fixed; position: fixed;
left: 0; left: 0;

4
src/components/site/serviceSetting/linkSet.vue

@ -71,10 +71,10 @@ export default {
}, },
methods: { methods: {
toggleSetSyncHome(){ toggleSetSyncHome(){
this.syncHome = !this.syncHome // this.syncHome = !this.syncHome
}, },
toggleSetSyncCheck(){ toggleSetSyncCheck(){
this.syncCheck = !this.syncCheck // this.syncCheck = !this.syncCheck
}, },
saveConfirm() { saveConfirm() {
let obj = {} let obj = {}

3
src/style/theme/index.css

@ -12567,9 +12567,10 @@ border-color:#006AFF !important;
font-size: 12px; font-size: 12px;
line-height: 1; line-height: 1;
padding-top: 4px; padding-top: 4px;
text-align: right;
position: absolute; position: absolute;
top: 100%; top: 100%;
left: 0 right: 0
} }
.el-form-item__error--inline { .el-form-item__error--inline {

7
src/views/agent/siteAdd.vue

@ -162,7 +162,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100%; height: 100%;
overflow-y: auto;
.custom-icon { .custom-icon {
width: 24px; width: 24px;
height: 24px; height: 24px;
@ -182,6 +182,11 @@ export default {
text-align: left; text-align: left;
width: calc(84.75% - 72px); width: calc(84.75% - 72px);
} }
.sticky{
position: sticky;
top: 0px;
z-index: 100;
}
} }
.step-wrap { .step-wrap {

5
src/views/agent/siteList.vue

@ -86,8 +86,9 @@
<el-table-column label="操作" fixed="right"> <el-table-column label="操作" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-link type="primary" :href="serviceListUrl+'?uid='+scope.row.uid" target="_blank" class="mr-16">服务列表</el-link> <el-link type="primary" v-if="scope.row.config_progress_status == '3'" :href="addNewSiteUrl+'?uid='+scope.row.uid" target="_blank" class="mr-16">继续配置</el-link>
<el-link type="primary" :href="siteSettingUrl+'?uid='+scope.row.uid" target="_blank">站点设置</el-link> <el-link type="primary" v-if="scope.row.config_progress_status != '3'" :href="serviceListUrl+'?uid='+scope.row.uid" target="_blank" class="mr-16">服务列表</el-link>
<el-link type="primary" v-if="scope.row.config_progress_status != '3'" :href="siteSettingUrl+'?uid='+scope.row.uid" target="_blank">站点设置</el-link>
</template> </template>
</el-table-column> </el-table-column>

Loading…
Cancel
Save