leisure-core 0.4.81 → 0.4.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -35,7 +35,7 @@ import LeInput from "./le-input/index.js";
35
35
  import LeForm from "./le-form/index";
36
36
  import LeFormItem from "./le-form-item/index";
37
37
  import LeInputNumber from "./le-input-number/index.js";
38
- import LeOption from "./le-option/index.js";
38
+ import LeSelectOption from "./le-select-option/index.js";
39
39
 
40
40
  const components = [
41
41
  LeArea,
@@ -70,7 +70,7 @@ const components = [
70
70
  LeInputNumber,
71
71
  LeForm,
72
72
  LeFormItem,
73
- LeOption,
73
+ LeSelectOption,
74
74
  ];
75
75
 
76
76
  const install = function (Vue) {
@@ -173,5 +173,5 @@ export default {
173
173
  LeInputNumber,
174
174
  LeForm,
175
175
  LeFormItem,
176
- LeOption,
176
+ LeSelectOption,
177
177
  };
@@ -16,6 +16,7 @@
16
16
  v-if="!item.type || item.type === 'input'"
17
17
  v-model="formPop[item.prop]"
18
18
  v-bind="item.attr || {}"
19
+ v-on="item.event"
19
20
  />
20
21
  <le-input-number
21
22
  v-else-if="item.type === 'number'"
@@ -24,10 +25,12 @@
24
25
  :min="item.min || 0"
25
26
  :max="item.max || 9999999999"
26
27
  label="item.label||''"
28
+ v-on="item.event"
27
29
  />
28
30
  <el-radio-group
29
31
  v-else-if="item.type === 'radio'"
30
32
  v-model="formPop[item.prop]"
33
+ v-on="item.event"
31
34
  >
32
35
  <el-radio
33
36
  v-for="(option, index) in item.options"
@@ -48,9 +51,10 @@
48
51
  v-else-if="item.type === 'select'"
49
52
  v-model="formPop[item.prop]"
50
53
  v-bind="item.attr || {}"
54
+ v-on="item.event"
51
55
  placeholder="请选择"
52
56
  >
53
- <le-option
57
+ <le-select-option
54
58
  :options="fieldOptions[item.prop]"
55
59
  :label="item.kv.label"
56
60
  :value="item.kv.key"
@@ -68,13 +72,12 @@
68
72
  </el-form>
69
73
  </template>
70
74
  <script>
71
- import LeSelect from "../../le-select/index";
72
- import LeInput from "../../le-input/index";
73
- import LeButton from "../../le-button/index";
74
- import LeOption from "../../le-option/index";
75
+ // import LeSelect from "../../le-select/index";
76
+ // import LeInput from "../../le-input/index";
77
+ // import LeButton from "../../le-button/index";
75
78
  export default {
76
79
  name: "le-common-page-sub",
77
- components: { LeSelect, LeInput, LeButton, LeOption },
80
+ // components: { LeSelect, LeInput, LeButton },
78
81
  props: {
79
82
  formColumns: {
80
83
  type: Array,
@@ -2,6 +2,7 @@
2
2
  <el-image
3
3
  v-bind="$attrs"
4
4
  v-on="$listeners"
5
+ :src="secureSrc"
5
6
  :class="['customClass', $attrs.class]"
6
7
  :style="$attrs.style"
7
8
  ></el-image>
@@ -9,7 +10,25 @@
9
10
  <script>
10
11
  export default {
11
12
  name: "le-image",
12
- props: {},
13
+ props: {
14
+ replaceHttp: {
15
+ type: Boolean,
16
+ default: true, // 标识是否需要替换
17
+ },
18
+ },
19
+ computed: {
20
+ secureSrc() {
21
+ let src = this.$attrs.src || "";
22
+ if (this.replaceHttp && src.startsWith("http:")) {
23
+ src = src.replace(/^http:/, "https:");
24
+ let portPattern = /:(\d+)/;
25
+ if (src.match(portPattern)) {
26
+ src = src.replace(portPattern, "");
27
+ }
28
+ }
29
+ return src;
30
+ },
31
+ },
13
32
  methods: {},
14
33
  };
15
34
  </script>
@@ -7,11 +7,11 @@
7
7
  v-for="(item, index) in imageList"
8
8
  :key="index"
9
9
  >
10
- <el-image :src="item" class="img">
10
+ <le-image :src="item" class="img">
11
11
  <div slot="placeholder" class="image-slot">
12
12
  加载中<span class="dot">...</span>
13
13
  </div>
14
- </el-image>
14
+ </le-image>
15
15
  <span
16
16
  class="delete"
17
17
  @click="delImgList(item)"
@@ -31,12 +31,12 @@
31
31
  <img class="verify-img" :src="verifyCodeImg" @click="getImg()" />
32
32
  </div>
33
33
  </el-form-item> -->
34
- <el-button
34
+ <le-button
35
35
  class="btn"
36
36
  type="primary"
37
37
  @keydown.enter="handleLodin()"
38
38
  @click="handleLodin()"
39
- >登录</el-button
39
+ >登录</le-button
40
40
  >
41
41
  </el-form>
42
42
  </template>
@@ -13,12 +13,12 @@
13
13
  <el-input v-model="title" placeholder="请输入标题名称"></el-input>
14
14
  </el-form-item>
15
15
  <el-form-item>
16
- <el-button type="primary" @click="searchMediaList"
17
- >查询</el-button
16
+ <le-button type="primary" @click="searchMediaList"
17
+ >查询</le-button
18
18
  >
19
- <el-button type="info" @click="resetSearch">重置</el-button>
20
- <el-button type="primary" @click="openUploadDialog"
21
- >上传素材</el-button
19
+ <le-button type="info" @click="resetSearch">重置</le-button>
20
+ <le-button type="primary" @click="openUploadDialog"
21
+ >上传素材</le-button
22
22
  >
23
23
  </el-form-item>
24
24
  </el-form>
@@ -29,7 +29,12 @@
29
29
  v-for="(item, i) in mediaList"
30
30
  :key="i + 'media'"
31
31
  >
32
- <img v-if="item.types == 1" :src="item.url" alt="" />
32
+ <le-image
33
+ style="width: 200px; height: 200px"
34
+ v-if="item.types == 1"
35
+ :src="item.url"
36
+ alt=""
37
+ />
33
38
  <video class="video" v-else controls>
34
39
  <source :src="item.url" type="video/mp4" />
35
40
  </video>
@@ -58,7 +63,7 @@
58
63
  </div>
59
64
  <div class="bottom-box">
60
65
  <div>
61
- <el-button type="primary" @click="openUploadDialog">上传素材</el-button>
66
+ <le-button type="primary" @click="openUploadDialog">上传素材</le-button>
62
67
  </div>
63
68
  <div>
64
69
  <!-- <el-button type="danger">删除</el-button>
@@ -2,10 +2,10 @@
2
2
  <div>
3
3
  <el-form :inline="true">
4
4
  <el-form-item label="分组名称">
5
- <el-input v-model="group" placeholder="请输入素材分组名称"></el-input>
5
+ <le-input v-model="group" placeholder="请输入素材分组名称"></le-input>
6
6
  </el-form-item>
7
7
  <el-form-item label="标题名称">
8
- <el-input v-model="title" placeholder="请输入标题名称"></el-input>
8
+ <le-input v-model="title" placeholder="请输入标题名称"></le-input>
9
9
  </el-form-item>
10
10
  <el-form-item label="多媒体">
11
11
  <el-select v-model="types" placeholder="请选择">
@@ -14,7 +14,7 @@
14
14
  </el-select>
15
15
  </el-form-item>
16
16
  <el-form-item>
17
- <el-button type="primary" @click="searData">查询</el-button>
17
+ <le-button type="primary" @click="searData">查询</le-button>
18
18
  </el-form-item>
19
19
  </el-form>
20
20
  <el-table
@@ -49,12 +49,12 @@
49
49
  </el-table-column>
50
50
  <el-table-column prop="url" label="素材图片" align="center">
51
51
  <template slot-scope="scope">
52
- <img
52
+ <le-image
53
53
  class="img"
54
54
  v-if="scope.row.types == 1"
55
55
  :src="scope.row.url"
56
56
  alt=""
57
- />
57
+ ></le-image>
58
58
  <video class="video" v-else controls>
59
59
  <source :src="scope.row.url" type="video/mp4" />
60
60
  </video>
@@ -1,10 +1,10 @@
1
1
  <template>
2
2
  <el-form :model="form" :rules="rules" ref="ruleForm" label-width="140px">
3
3
  <el-form-item label="素材分组" prop="group_name">
4
- <el-input v-model="form.group_name"></el-input>
4
+ <le-input v-model="form.group_name"></le-input>
5
5
  </el-form-item>
6
6
  <el-form-item label="素材标题" prop="title">
7
- <el-input v-model="form.title"></el-input>
7
+ <le-input v-model="form.title"></le-input>
8
8
  </el-form-item>
9
9
  <el-form-item label="素材类型" required>
10
10
  <el-radio-group v-model="form.types">
@@ -13,12 +13,12 @@
13
13
  </el-radio-group>
14
14
  </el-form-item>
15
15
  <el-form-item label="排序" required>
16
- <el-input-number
16
+ <le-input-number
17
17
  v-model="form.rank"
18
18
  :min="0"
19
19
  step-strictly
20
20
  :controls="false"
21
- ></el-input-number>
21
+ ></le-input-number>
22
22
  </el-form-item>
23
23
  <el-form-item label="上传素材" v-if="!isEdit">
24
24
  <el-upload
@@ -38,7 +38,10 @@
38
38
  </div>
39
39
  <i slot="default" class="el-icon-plus"></i>
40
40
  <div slot="file" slot-scope="{ file }">
41
- <img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
41
+ <le-image
42
+ class="el-upload-list__item-thumbnail"
43
+ :src="file.url"
44
+ ></le-image>
42
45
  <span class="el-upload-list__item-actions">
43
46
  <span
44
47
  class="el-upload-list__item-preview"
@@ -70,27 +73,26 @@
70
73
  <div slot="tip" class="el-upload__tip">
71
74
  <div>最大支持100M的视频</div>
72
75
  </div>
73
- <el-button type="primary">选择视频</el-button>
76
+ <le-button type="primary">选择视频</le-button>
74
77
  </el-upload>
75
78
  <el-dialog v-el-drag-dialog :visible.sync="dialogVisible" modal>
76
- <img width="100%" :src="dialogImageUrl" alt="" />
79
+ <le-image style="width: 100%" :src="dialogImageUrl" alt="" />
77
80
  </el-dialog>
78
81
  </el-form-item>
79
82
 
80
83
  <el-form-item label="素材" v-if="isEdit">
81
- <img class="img" v-if="form.types == 1" :src="form.url" alt="" />
84
+ <le-image class="img" v-if="form.types == 1" :src="form.url" alt="" />
82
85
  <video class="video" v-else controls>
83
86
  <source :src="form.url" type="video/mp4" />
84
87
  </video>
85
- <el-button type="text" @click="replaceFile">替换素材</el-button>
88
+ <le-button type="text" @click="replaceFile">替换素材</le-button>
86
89
  </el-form-item>
87
-
88
90
  <el-form-item>
89
- <el-button type="info" @click="cancelCreate">取消</el-button>
90
- <el-button v-if="form.id" type="primary" @click="saveEditPic">
91
+ <le-button type="info" @click="cancelCreate">取消</le-button>
92
+ <le-button v-if="form.id" type="primary" @click="saveEditPic">
91
93
  修改保存
92
- </el-button>
93
- <el-button type="primary" @click="savePic" v-else>上传保存</el-button>
94
+ </le-button>
95
+ <le-button type="primary" @click="savePic" v-else>上传保存</le-button>
94
96
  </el-form-item>
95
97
  </el-form>
96
98
  </template>
@@ -55,6 +55,10 @@ export default {
55
55
  type: String,
56
56
  default: "500px",
57
57
  },
58
+ replaceHttp: {
59
+ type: Boolean,
60
+ default: true, // 标识是否需要替换
61
+ },
58
62
  },
59
63
  data() {
60
64
  return {
@@ -68,6 +72,13 @@ export default {
68
72
  if (this.isBase64 && newValue && newValue.length > 0) {
69
73
  this.content = Base64.decode(newValue);
70
74
  } else this.content = newValue;
75
+ if (this.replaceHttp) {
76
+ const httpsRegex = /(http:\/\/[^\s/$.?#].*?:\d+)([^\s]*)/g;
77
+ this.content = this.content.replace(httpsRegex, (match, p1, p2) => {
78
+ const withoutPort = p1.replace(/:\d+/, "");
79
+ return withoutPort.replace(/^http:\/\//, "https://") + p2;
80
+ });
81
+ }
71
82
  },
72
83
  immediate: true,
73
84
  },
@@ -2,7 +2,7 @@
2
2
  <div class="le-role-container">
3
3
  <el-form :inline="true" class="demo-form-inline">
4
4
  <el-form-item>
5
- <el-button type="primary" @click="addRole()">新建角色</el-button>
5
+ <le-button type="primary" @click="addRole()">新建角色</le-button>
6
6
  </el-form-item>
7
7
  </el-form>
8
8
  <el-table
@@ -2,10 +2,10 @@
2
2
  <div class="le-role-user-container">
3
3
  <el-form :inline="true" :model="searchData" @submit.native.prevent>
4
4
  <el-form-item label="账号">
5
- <el-input v-model="searchData.account" placeholder="账号"></el-input>
5
+ <le-input v-model="searchData.account" placeholder="账号"></le-input>
6
6
  </el-form-item>
7
7
  <el-form-item>
8
- <el-button type="primary" @click="userList">查询</el-button>
8
+ <le-button type="primary" @click="userList">查询</le-button>
9
9
  </el-form-item>
10
10
  </el-form>
11
11
  <el-table :data="userData" border row-key="id" stripe style="width: 100%">
@@ -13,16 +13,37 @@
13
13
  export default {
14
14
  name: "le-select",
15
15
  props: {
16
- // options: {
17
- // type: Array,
18
- // default: () => [],
16
+ // isLabel: {
17
+ // type: Boolean,
18
+ // default: false,
19
19
  // },
20
20
  },
21
21
  inheritAttrs: false,
22
22
  data() {
23
- return {};
23
+ return {
24
+ options: [],
25
+ };
26
+ },
27
+ mounted() {
28
+ // if (this.isLabel) {
29
+ // this.checkSlotContent();
30
+ // }
31
+ },
32
+ methods: {
33
+ // checkSlotContent() {
34
+ // const slotContent = this.$slots.default;
35
+ // if (slotContent) {
36
+ // slotContent.forEach((vnode) => {
37
+ // if (
38
+ // vnode.componentOptions &&
39
+ // vnode.componentOptions.tag === "le-select-option"
40
+ // ) {
41
+ // this.options = vnode.componentOptions.propsData;
42
+ // }
43
+ // });
44
+ // }
45
+ // },
24
46
  },
25
- methods: {},
26
47
  };
27
48
  </script>
28
49
  <style lang="scss" scoped></style>
@@ -0,0 +1,7 @@
1
+ import LeSelectOption from "./src/main.vue";
2
+
3
+ LeSelectOption.install = function (Vue) {
4
+ Vue.component(LeSelectOption.name, LeSelectOption);
5
+ };
6
+
7
+ export default LeSelectOption;
@@ -10,7 +10,7 @@
10
10
  </template>
11
11
  <script>
12
12
  export default {
13
- name: "le-options",
13
+ name: "le-select-option",
14
14
  props: {
15
15
  options: {
16
16
  type: Array,
@@ -31,6 +31,7 @@ export default {
31
31
  default: 1,
32
32
  },
33
33
  },
34
+ mounted() {},
34
35
  methods: {
35
36
  handleKv(type, item) {
36
37
  if (this.keyNum == 1) {
@@ -16,9 +16,9 @@
16
16
  :before-upload="onBeforeUpload"
17
17
  :auto-upload="true"
18
18
  >
19
- <el-button slot="trigger" size="small" type="primary">{{
19
+ <le-button slot="trigger" size="small" type="primary">{{
20
20
  BtnSeText
21
- }}</el-button>
21
+ }}</le-button>
22
22
  </el-upload>
23
23
  <div v-if="showTip" slot="tip" class="el-upload__tip tip">
24
24
  {{ tipText }}
@@ -2,10 +2,10 @@
2
2
  <div>
3
3
  <el-form ref="formUserAdd" :model="form" :rules="rules" label-width="100px">
4
4
  <el-form-item label="账号(后台)" prop="account">
5
- <el-input v-model="form.account"></el-input>
5
+ <le-input v-model="form.account"></le-input>
6
6
  </el-form-item>
7
7
  <el-form-item label="员工姓名" prop="nick">
8
- <el-input v-model="form.nick"></el-input>
8
+ <le-input v-model="form.nick"></le-input>
9
9
  </el-form-item>
10
10
  <!-- <el-form-item label="身份证号" prop="cardNo">
11
11
  <el-input v-model="form.cardNo"></el-input>
@@ -20,6 +20,11 @@
20
20
  ></el-option>
21
21
  </el-select>
22
22
  </el-form-item> -->
23
+ <el-form-item label="所属部门" v-if="this.$stype == 'multiple'">
24
+ <le-select v-model="form.pdepart_id">
25
+ <le-options :options="pdeparts" label="dname" value="id"></le-options>
26
+ </le-select>
27
+ </el-form-item>
23
28
  <el-form-item label="所属商家" v-if="this.$stype == 'multiple'">
24
29
  <el-select
25
30
  v-model="form.bid"
@@ -41,11 +46,11 @@
41
46
  </el-select>
42
47
  </el-form-item>
43
48
  <el-form-item label="备注" prop="note">
44
- <el-input v-model="form.note"></el-input>
49
+ <le-input v-model="form.note"></le-input>
45
50
  </el-form-item>
46
51
  <el-form-item v-rfooter>
47
- <el-button type="primary" @click="onSubmit">保存</el-button>
48
- <el-button type="info" @click="close()">取消</el-button>
52
+ <le-button type="primary" @click="onSubmit">保存</le-button>
53
+ <le-button type="info" @click="close()">取消</le-button>
49
54
  </el-form-item>
50
55
  </el-form>
51
56
  </div>
@@ -53,6 +58,7 @@
53
58
  <script>
54
59
  import { add as userAdd, edit as userEdit } from "@/api/user";
55
60
  import { list as blist } from "@/api/mall_business";
61
+ import { departList } from "@/api/depart";
56
62
  export default {
57
63
  name: "le-user-add",
58
64
  props: {
@@ -64,6 +70,7 @@ export default {
64
70
  data() {
65
71
  return {
66
72
  companys: [],
73
+ pdeparts: [],
67
74
  form: {
68
75
  id: "",
69
76
  account: "",
@@ -78,6 +85,7 @@ export default {
78
85
  note: "",
79
86
  password: "",
80
87
  bid: "",
88
+ pdepart_id: "",
81
89
  },
82
90
  boptions: [],
83
91
  rules: {
@@ -124,7 +132,9 @@ export default {
124
132
  immediate: true,
125
133
  },
126
134
  },
127
- mounted() {},
135
+ mounted() {
136
+ this.departList();
137
+ },
128
138
  methods: {
129
139
  onSubmit() {
130
140
  this.$refs["formUserAdd"].validate((valid) => {
@@ -159,6 +169,11 @@ export default {
159
169
  close() {
160
170
  this.$emit("close");
161
171
  },
172
+ departList() {
173
+ departList().then((res) => {
174
+ this.pdeparts = res.data.data;
175
+ });
176
+ },
162
177
  getMallBusiness(query) {
163
178
  let param = {};
164
179
  param.pageNo = 1;
@@ -26,7 +26,7 @@
26
26
  </el-form-item>
27
27
  <el-form-item label="头像" v-if="false">
28
28
  <div class="avatar-uploader" @click="openUploadDialog">
29
- <img
29
+ <le-image
30
30
  v-if="ruleUserForm.wx_url"
31
31
  :src="ruleUserForm.wx_url"
32
32
  class="avatar"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "leisure-core",
3
- "version": "0.4.81",
3
+ "version": "0.4.83",
4
4
  "description": "leisure-core是京心数据基于vue2.x开发的一套后台管理系统桌面端组件库,封装了大量实用的UI控件模板,非常方便开发者快速搭建前端应用",
5
5
  "private": false,
6
6
  "author": "北方乐逍遥(zcx7878)",
@@ -1,7 +0,0 @@
1
- import LeOption from "./src/main.vue";
2
-
3
- LeOption.install = function (Vue) {
4
- Vue.component(LeOption.name, LeOption);
5
- };
6
-
7
- export default LeOption;