@jx3box/jx3box-common-ui 8.3.3 → 8.3.5

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jx3box/jx3box-common-ui",
3
- "version": "8.3.3",
3
+ "version": "8.3.5",
4
4
  "description": "JX3BOX UI",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/service/design.js CHANGED
@@ -7,3 +7,7 @@ export const createDesignTask = (data) => {
7
7
  export const getDesignTask = (params) => {
8
8
  return $cms().get(`/api/cms/design/task/log`, { params });
9
9
  }
10
+
11
+ export const getConfigBannerTypes = (params) => {
12
+ return $cms().get(`/api/cms/config/banner/types`, { params });
13
+ }
@@ -48,7 +48,7 @@
48
48
  <!-- <Adminbutton v-if="adminEnable" class="u-admin" /> -->
49
49
  <!-- <ListAdmin v-if="topicEnable" /> -->
50
50
  <Admin v-if="adminEnable" :marksOptions="adminMarks" :show-extend="showExtend" :app="slug" :subtypeMap="subtypeMap" />
51
- <AdminDrop v-if="adminEnable" />
51
+ <!-- <AdminDrop v-if="adminEnable" /> -->
52
52
  <slot name="op-prepend"></slot>
53
53
  </div>
54
54
  </div>
@@ -149,7 +149,7 @@ export default {
149
149
  Crumb,
150
150
  // Adminbutton,
151
151
  // ListAdmin,
152
- AdminDrop,
152
+ // AdminDrop,
153
153
  },
154
154
  };
155
155
  </script>
@@ -25,6 +25,7 @@
25
25
  import Bus from "../../service/bus";
26
26
  import User from "@jx3box/jx3box-common/js/user";
27
27
  import DesignTask from "./DesignTask.vue";
28
+ import { sendMessage } from "../../service/admin";
28
29
  export default {
29
30
  name: "AdminDrop",
30
31
  components: {
@@ -80,7 +81,7 @@ export default {
80
81
  beforeClose: (action, instance, done) => {
81
82
  if (action === "confirm") {
82
83
  const data = {
83
- source_id: this.sourceId,
84
+ source_id: String(this.sourceId),
84
85
  source_type: this.sourceType,
85
86
  user_id: this.userId,
86
87
  content: "运营通知:" + instance.inputValue,
@@ -1,9 +1,14 @@
1
1
  <template>
2
- <el-dialog custom-class="m-design-task" :visible="modelValue" @close="close" title="快捷推送" append-to-body>
3
- <el-form :model="form" :rules="rules" ref="form" label-position="left" label-width="80px">
2
+ <el-dialog custom-class="m-design-task" :width="isPhone ? '95%' : '600px'" :visible="modelValue" @close="close" title="快捷推送" append-to-body>
3
+ <el-form :model="form" :rules="rules" ref="form" :label-position="isPhone ? 'top' : 'left'" label-width="80px">
4
4
  <el-form-item label="标题" required>
5
5
  <el-input v-model="form.title" placeholder="请输入标题"></el-input>
6
6
  </el-form-item>
7
+ <el-form-item label="类型">
8
+ <el-select v-model="form.type" placeholder="请选择类型" style="width:100%;">
9
+ <el-option v-for="item in config" :key="item.id" :label="item.label" :value="item.name"></el-option>
10
+ </el-select>
11
+ </el-form-item>
7
12
  <el-form-item label="备注">
8
13
  <el-input v-model="form.remark" placeholder="请输入备注"></el-input>
9
14
  </el-form-item>
@@ -11,6 +16,27 @@
11
16
  <el-rate v-model="form.star" :colors="colors"></el-rate>
12
17
  </el-form-item>
13
18
  </el-form>
19
+
20
+ <el-divider content-position="left">
21
+ 近期推送
22
+ </el-divider>
23
+ <template v-if="logs && logs.length">
24
+ <el-table :data="logs" border size="small">
25
+ <el-table-column label="推送时间" prop="push_at" align="center">
26
+ <template #default="{row}">
27
+ {{ formatTime(row.push_at) }}
28
+ </template>
29
+ </el-table-column>
30
+ <el-table-column label="推送人" prop="pusher.display_name" align="center"></el-table-column>
31
+ <el-table-column label="星级" prop="star" align="center">
32
+ <template #default="{row}">
33
+ <el-rate v-model="row.star" disabled :colors="colors"></el-rate>
34
+ </template>
35
+ </el-table-column>
36
+ <el-table-column label="备注" prop="remark" align="center"></el-table-column>
37
+ </el-table>
38
+ </template>
39
+ <el-alert v-else title="当前文章暂无历史推送" type="info" show-icon :closable="false"></el-alert>
14
40
  <template #footer>
15
41
  <el-button @click="close">取 消</el-button>
16
42
  <el-button type="primary" @click="onConfirm">确 定</el-button>
@@ -19,8 +45,9 @@
19
45
  </template>
20
46
 
21
47
  <script>
22
- import { createDesignTask, getDesignTask } from "../../service/design";
48
+ import { createDesignTask, getDesignTask, getConfigBannerTypes } from "../../service/design";
23
49
  import {pick} from "lodash";
50
+ import dayjs from "dayjs";
24
51
  export default {
25
52
  name: "DesignTask",
26
53
  props: {
@@ -44,6 +71,7 @@ export default {
44
71
  title: "",
45
72
  remark: "",
46
73
  star: 0,
74
+ subtype: "",
47
75
  },
48
76
  colors: ['#99A9BF', '#F7BA2A', '#FF9900'],
49
77
 
@@ -53,15 +81,24 @@ export default {
53
81
  { required: true, message: "请输入标题", trigger: "blur" },
54
82
  ],
55
83
  },
84
+ config: [],
85
+
86
+ isPhone: window.innerWidth < 768
56
87
  }
57
88
  },
58
89
  watch: {
59
90
  modelValue(val) {
60
91
  if (val) {
92
+ if (this.post) {
93
+ this.form.title = this.post.post_title;
94
+ }
61
95
  this.loadLogs();
62
96
  }
63
97
  }
64
98
  },
99
+ mounted() {
100
+ this.loadConfig();
101
+ },
65
102
  methods: {
66
103
  close(){
67
104
  this.$emit("update:modelValue",false)
@@ -81,8 +118,10 @@ export default {
81
118
  data.title = this.form.title;
82
119
  data.remark = this.form.remark;
83
120
  data.star = this.form.star;
121
+ data.subtype = this.form.type;
122
+
84
123
  data.source_type = this.post?.post_type;
85
- data.source_id = this.post?.ID;
124
+ data.source_id = String(this.post?.ID);
86
125
  data.link = `/${this.post?.post_type}/${this.post?.ID}`;
87
126
  data.flow = 0;
88
127
 
@@ -96,9 +135,18 @@ export default {
96
135
  this.clearForm();
97
136
  },
98
137
  loadLogs() {
99
- getDesignTask().then(res => {
138
+ if (!this.post?.ID) return;
139
+ getDesignTask({ source_id: this.post?.ID }).then(res => {
100
140
  this.logs = res.data.data || [];
101
141
  })
142
+ },
143
+ loadConfig() {
144
+ getConfigBannerTypes({ _no_page: 1 }).then(res => {
145
+ this.config = res.data.data || [];
146
+ })
147
+ },
148
+ formatTime(time) {
149
+ return dayjs(time).format("YYYY-MM-DD HH:mm:ss");
102
150
  }
103
151
  }
104
152
  }
@@ -111,5 +159,18 @@ export default {
111
159
  top: 10px;
112
160
  }
113
161
  }
162
+ .u-time {
163
+ color: #c0c4cc;
164
+ }
165
+ }
166
+
167
+ @media screen and (max-width: @phone) {
168
+ .m-design-task {
169
+ .m-star-line {
170
+ .el-form-item__content {
171
+ top: 0;
172
+ }
173
+ }
174
+ }
114
175
  }
115
176
  </style>