mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-29 05:50:50 +00:00
Merge branch 'v5.0.0dev' into v5.1.0dev
This commit is contained in:
commit
dae04d81e6
@ -33,7 +33,7 @@ class Request extends \think\Request
|
||||
* 不过滤变量名
|
||||
* @var array
|
||||
*/
|
||||
protected $except = ['menu_path', 'api_url', 'unique_auth', 'description', 'custom_form', 'content'];
|
||||
protected $except = ['menu_path', 'api_url', 'unique_auth', 'description', 'custom_form', 'content', 'tableField'];
|
||||
|
||||
/**
|
||||
* 获取请求的数据
|
||||
|
||||
@ -111,7 +111,7 @@ class SystemMenus extends AuthController
|
||||
['is_show', 0],
|
||||
['is_show_path', 0],
|
||||
]);
|
||||
|
||||
$data['is_show_path'] = $data['is_show'];
|
||||
if (!$data['menu_name'])
|
||||
return app('json')->fail(400198);
|
||||
$data['path'] = implode('/', $data['path']);
|
||||
|
||||
@ -682,10 +682,10 @@ if (!function_exists('get_file_link')) {
|
||||
if (!$link) {
|
||||
return '';
|
||||
}
|
||||
if (strstr('http', $link) === false) {
|
||||
return app()->request->domain() . $link;
|
||||
} else {
|
||||
if (substr($link, 0, 4) === "http" || substr($link, 0, 2) === "//") {
|
||||
return $link;
|
||||
} else {
|
||||
return app()->request->domain() . $link;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -139,21 +139,17 @@ class UserSignServices extends BaseServices
|
||||
if (!$user) {
|
||||
throw new ApiException(410032);
|
||||
}
|
||||
if ($this->getIsSign($uid, 'today')) {
|
||||
throw new ApiException(410293);
|
||||
}
|
||||
// if ($this->getIsSign($uid, 'today')) {
|
||||
// throw new ApiException(410293);
|
||||
// }
|
||||
$sign_num = 0;
|
||||
$user_sign_num = $user['sign_num'];
|
||||
//检测昨天是否签到
|
||||
if ($this->getIsSign($uid, 'yesterday')) {
|
||||
if ($user->sign_num > (count($sign_list) - 1)) {
|
||||
$user->sign_num = 0;
|
||||
}
|
||||
} else {
|
||||
$user->sign_num = 0;
|
||||
}
|
||||
// if (!$this->getIsSign($uid, 'yesterday')) {
|
||||
// $user->sign_num = 0;
|
||||
// }
|
||||
|
||||
foreach ($sign_list as $key => $item) {
|
||||
if ($key == $user->sign_num) {
|
||||
if ($key == $user->sign_num || ($user->sign_num > 6 && $key == 6)) {
|
||||
$sign_num = $item['sign_num'];
|
||||
break;
|
||||
}
|
||||
|
||||
@ -9,6 +9,16 @@
|
||||
// | Author: CRMEB Team <admin@crmeb.com>
|
||||
// +----------------------------------------------------------------------
|
||||
return [
|
||||
|
||||
// 系统程序接收到发送过来的消息,通过此端口推送给对应的客户或者客服,以及后台新订单弹窗提醒
|
||||
'channel' => [
|
||||
//内部通讯监听端口
|
||||
'port' => 40003,
|
||||
//内部通讯地址
|
||||
'ip' => '127.0.0.1',
|
||||
],
|
||||
|
||||
// notice 新订单和新退款单发送消息给程序,后台的消息通知
|
||||
'admin' => [
|
||||
//协议
|
||||
'protocol' => 'websocket',
|
||||
@ -20,6 +30,7 @@ return [
|
||||
'serverCount' => 1,
|
||||
],
|
||||
|
||||
// msg 客户或者客服发送消息给程序,客服消息通知
|
||||
'chat' => [
|
||||
//协议
|
||||
'protocol' => 'websocket',
|
||||
@ -30,12 +41,4 @@ return [
|
||||
//设置当前Worker实例启动多少个进程
|
||||
'serverCount' => 1,
|
||||
],
|
||||
|
||||
'channel' => [
|
||||
//内部通讯监听端口
|
||||
'port' => 40003,
|
||||
//内部通讯地址
|
||||
'ip' => '127.0.0.1',
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
@ -25,9 +25,9 @@
|
||||
<!--<Input type="password" v-model="formInline.password" prefix="ios-lock-outline"-->
|
||||
<!--placeholder="请确认短信平台密码/token" />-->
|
||||
<!--</FormItem>-->
|
||||
<FormItem prop="url" class="maxInpt">
|
||||
<Input type="text" v-model="formInline.url" prefix="ios-contact-outline" placeholder="请输入网址域名" />
|
||||
</FormItem>
|
||||
<!-- <FormItem prop="url" class="maxInpt"> -->
|
||||
<!-- <Input type="text" v-model="formInline.url" prefix="ios-contact-outline" placeholder="请输入网址域名" /> -->
|
||||
<!-- </FormItem> -->
|
||||
<!--<FormItem prop="sign">-->
|
||||
<!--<Input type="text" v-model="formInline.sign" prefix="ios-contact-outline"-->
|
||||
<!--placeholder="请输入短信签名,例如:CRMEB" />-->
|
||||
@ -81,7 +81,7 @@ export default {
|
||||
ruleInline: {
|
||||
account: [{ required: true, message: '请输入短信平台账号', trigger: 'blur' }],
|
||||
password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
|
||||
url: [{ required: true, message: '请输入网址域名', trigger: 'blur' }],
|
||||
// url: [{ required: true, message: '请输入网址域名', trigger: 'blur' }],
|
||||
phone: [{ required: true, validator: validatePhone, trigger: 'blur' }],
|
||||
sign: [{ required: true, message: '请输入短信签名', trigger: 'blur' }],
|
||||
verify_code: [{ required: true, message: '请输入验证码', trigger: 'blur' }],
|
||||
|
||||
@ -48,8 +48,8 @@
|
||||
<Col
|
||||
span="12"
|
||||
class="fontColor3 mb10"
|
||||
v-if="parseFloat(orderDatalist.orderInfo.refund_price) && orderDatalist.orderInfo.refund_type != 3"
|
||||
>退款金额:{{ parseFloat(orderDatalist.orderInfo.refund_price) }}</Col
|
||||
v-if="parseFloat(orderDatalist.orderInfo.refunded_price) && orderDatalist.orderInfo.refund_type != 3"
|
||||
>退款金额:{{ parseFloat(orderDatalist.orderInfo.refunded_price) }}</Col
|
||||
>
|
||||
<Col span="12" class="fontColor3 mb10" v-if="parseFloat(orderDatalist.orderInfo.use_integral)"
|
||||
>使用积分:{{ parseFloat(orderDatalist.orderInfo.use_integral) }}</Col
|
||||
|
||||
@ -47,12 +47,19 @@
|
||||
</Input>
|
||||
</FormItem>
|
||||
</Col>
|
||||
<Col v-bind="grid" v-if="authType == 2">
|
||||
<FormItem label="请求方式:" prop="methods">
|
||||
<Select v-model="formValidate.methods">
|
||||
<Option value="GET">GET</Option>
|
||||
<Option value="POST">POST</Option>
|
||||
<Option value="PUT">PUT</Option>
|
||||
<Option value="DELETE">DELETE</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
</Col>
|
||||
<Col v-bind="grid" v-if="authType == 2">
|
||||
<FormItem label="接口地址:" prop="api_url">
|
||||
<Input v-model="formValidate.api_url" placeholder="请输入接口地址" @on-change="changeUnique">
|
||||
<template #prepend>
|
||||
<span>adminapi/</span>
|
||||
</template>
|
||||
</Input>
|
||||
</FormItem>
|
||||
</Col>
|
||||
@ -369,10 +376,13 @@ export default {
|
||||
datas: this.formValidate,
|
||||
};
|
||||
if (!this.formValidate.menu_name) {
|
||||
return this.$Message.warning('请填写按钮名称');
|
||||
return this.$Message.warning('请填写菜单/按钮/接口名称');
|
||||
}
|
||||
if (!this.formValidate.menu_path) {
|
||||
return this.$Message.warning('请填写路由地址');
|
||||
if (!this.formValidate.menu_path && this.authType != 2) {
|
||||
return this.$Message.warning('请填写页面地址');
|
||||
}
|
||||
if (!this.formValidate.api_url && this.authType == 2) {
|
||||
return this.$Message.warning('请填写接口地址');
|
||||
}
|
||||
this.valids = true;
|
||||
addMenusApi(data)
|
||||
|
||||
@ -71,10 +71,10 @@
|
||||
<span>
|
||||
<a @click="addRoute(row)" v-if="row.auth_type === 1 || row.auth_type === 3">选择权限</a>
|
||||
<Divider type="vertical" v-if="row.auth_type === 1 || row.auth_type === 3"/>
|
||||
<a @click="addE(row, '添加子菜单')" v-if="row.auth_type === 1">添加下级</a>
|
||||
<a @click="addE(row, '添加子菜单')" v-if="row.auth_type === 1 || row.auth_type === 3">添加下级</a>
|
||||
<!-- <a @click="addE(row, '添加规则')" v-else>添加规则</a> -->
|
||||
</span>
|
||||
<Divider type="vertical" v-if="row.auth_type === 1" />
|
||||
<Divider type="vertical" v-if="row.auth_type === 1 || row.auth_type === 3" />
|
||||
<a @click="edit(row, '编辑')">编辑</a>
|
||||
<Divider type="vertical" />
|
||||
<a @click="del(row, '删除规则')">删除</a>
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<Row type="flex">
|
||||
<Col v-bind="grid">
|
||||
<Button type="primary" icon="md-add" @click="addBatch" class="mr20">添加批次</Button>
|
||||
<Button @click="getMemberScan">下载二维码</Button>
|
||||
<Button @click="getMemberScan">卡密使用页面二维码</Button>
|
||||
</Col>
|
||||
</Row>
|
||||
</Form>
|
||||
|
||||
@ -42,7 +42,7 @@ const themeConfigModule = {
|
||||
// 是否开启菜单水平折叠效果
|
||||
isCollapse: false,
|
||||
// 是否开启菜单手风琴效果
|
||||
isUniqueOpened: false,
|
||||
isUniqueOpened: true,
|
||||
// 是否开启固定 Header
|
||||
isFixedHeader: true,
|
||||
|
||||
|
||||
@ -2,9 +2,12 @@
|
||||
<view class="goodsList">
|
||||
<view class="item" v-for="(item,index) in tempArr" :key='index' @click="goDetail(item)">
|
||||
<view class="pictrue">
|
||||
<span class="pictrue_log pictrue_log_class" v-if="item.activity && item.activity.type === '1'">{{$t(`秒杀`)}}</span>
|
||||
<span class="pictrue_log pictrue_log_class" v-if="item.activity && item.activity.type === '2'">{{$t(`砍价`)}}</span>
|
||||
<span class="pictrue_log pictrue_log_class" v-if="item.activity && item.activity.type === '3'">{{$t(`拼团`)}}</span>
|
||||
<span class="pictrue_log pictrue_log_class"
|
||||
v-if="item.activity && item.activity.type === '1'">{{$t(`秒杀`)}}</span>
|
||||
<span class="pictrue_log pictrue_log_class"
|
||||
v-if="item.activity && item.activity.type === '2'">{{$t(`砍价`)}}</span>
|
||||
<span class="pictrue_log pictrue_log_class"
|
||||
v-if="item.activity && item.activity.type === '3'">{{$t(`拼团`)}}</span>
|
||||
<image :src="item.recommend_image" mode="" v-if="item.recommend_image"></image>
|
||||
<image :src="item.image" mode="" v-else></image>
|
||||
</view>
|
||||
@ -17,7 +20,8 @@
|
||||
<view v-if="item.stock>0">
|
||||
<view class="bnt"
|
||||
v-if="(item.activity && (item.activity.type === '1' || item.activity.type === '2' || item.activity.type === '3') || item.is_virtual) || !item.cart_button">
|
||||
{{$t(`立即购买`)}}</view>
|
||||
{{$t(`立即购买`)}}
|
||||
</view>
|
||||
<view v-else>
|
||||
<!-- 多规格 -->
|
||||
<view class="bnt" @click.stop="goCartDuo(item)" v-if="item.spec_type">
|
||||
@ -26,7 +30,8 @@
|
||||
</view>
|
||||
<!-- 单规格 -->
|
||||
<view class="bnt" v-if="!item.spec_type && !item.cart_num" @click.stop="goCartDan(item,index)">
|
||||
{{$t(`加入购物车`)}}</view>
|
||||
{{$t(`加入购物车`)}}
|
||||
</view>
|
||||
<view class="cart acea-row row-middle" v-if="!item.spec_type && item.cart_num">
|
||||
<view class="pictrue iconfont icon-jianhao" @click.stop="CartNumDes(index,item)"></view>
|
||||
<view class="num">{{item.cart_num}}</view>
|
||||
@ -98,15 +103,20 @@
|
||||
margin-bottom: 63rpx;
|
||||
|
||||
.pictrue {
|
||||
width: 100%;
|
||||
height: 290rpx;
|
||||
// width: 100%;
|
||||
// height: 290rpx;
|
||||
border-radius: 16rpx;
|
||||
position: relative;
|
||||
padding-top: 40%;
|
||||
|
||||
image {
|
||||
border-radius: 10rpx;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 10rpx;
|
||||
object-fit: cover;
|
||||
}
|
||||
}
|
||||
|
||||
@ -186,4 +196,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
@ -969,7 +969,7 @@
|
||||
margin-bottom: 33rpx !important;
|
||||
|
||||
.pictrue {
|
||||
height: 216rpx;
|
||||
// height: 216rpx;
|
||||
}
|
||||
|
||||
.text {
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
{{(item.day==$t(`第七天`) || item.day==$t(`第7天`))?$t(`奖励`):$t(item.day)}}
|
||||
</view>
|
||||
<view class='venus'
|
||||
:class="(index + 1 === signSystemList.length ? 'reward' : '') + ' ' +(sign_index >= index + 1 ? 'venusSelect' : '')">
|
||||
:class="(index + 1 === signSystemList.length ? 'venusSelect' : '') + ' ' +(sign_index >= index + 1 ? 'venusSelect' : '')">
|
||||
</view>
|
||||
<view class='num' :class="sign_index >= index + 1 ? 'on' : ''">+{{item.sign_num}}</view>
|
||||
</view>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user