diff --git a/src/channel/whatsappUtils.js b/src/channel/whatsappUtils.js
index dbc415f..901f7ce 100644
--- a/src/channel/whatsappUtils.js
+++ b/src/channel/whatsappUtils.js
@@ -233,11 +233,11 @@ const whatsappMsgMapped = {
return isEmpty(result?.whatsappMessage) ? null : { ...result.whatsappMessage, conversationid: result.conversationid, messageorigin: result.messageorigin };
},
contentToRender: (contentObj) => {
- if ((contentObj?.status === 'failed' ) && contentObj.errorCode !== 'BAD_REQUEST') {
+ if (contentObj?.status === 'failed' && ['130472', 'BAD_REQUEST'].includes(contentObj.errorCode)) {
contentObj = {
...contentObj,
type: 'error',
- text: {body: `❌ ${whatsappError?.[contentObj.errorCode] || contentObj.errorMessage}` }, // contentObj.errorMessage // Message failed to send.
+ text: { body: `❌ ${whatsappError?.[contentObj.errorCode] || contentObj.errorMessage}` }, // contentObj.errorMessage // Message failed to send.
id: contentObj.id,
wamid: contentObj.id,
};
diff --git a/src/views/Conversations/InputAssign.jsx b/src/views/Conversations/InputAssign.jsx
index 6097b86..5e71766 100644
--- a/src/views/Conversations/InputAssign.jsx
+++ b/src/views/Conversations/InputAssign.jsx
@@ -7,6 +7,7 @@ import useAuthStore from '@/stores/AuthStore';
const InputAssign = ({ initialValues, ...props }) => {
const [userId, username] = useAuthStore((state) => [state.loginUser.userId, state.loginUser.username]);
+ const actionDisabled = !['79', '383', '404', '227'].includes(String(userId));
const { message } = App.useApp();
const [form] = Form.useForm();
@@ -16,6 +17,7 @@ const InputAssign = ({ initialValues, ...props }) => {
const valuesSub = {
...values,
opi_sn: values.opi_sn.value,
+ from_opi_sn: userId, // 谁在操作
};
setSubLoading(true);
await postAssignConversation(valuesSub);
@@ -35,10 +37,11 @@ const InputAssign = ({ initialValues, ...props }) => {
-
diff --git a/src/views/Conversations/Online/MessagesWrapper.jsx b/src/views/Conversations/Online/MessagesWrapper.jsx
index 6f10bb0..46b0e68 100644
--- a/src/views/Conversations/Online/MessagesWrapper.jsx
+++ b/src/views/Conversations/Online/MessagesWrapper.jsx
@@ -53,7 +53,7 @@ const MessagesWrapper = ({ updateRead = true, forceGetMessages }) => {
const getFirstPageMessages = async (item) => {
setMsgLoading(true);
- const data = await fetchMessages({ opisn: forceGetMessages ? '' : userId, whatsappid: item.whatsapp_phone_number, lasttime: '' });
+ const data = await fetchMessages({ opisn: forceGetMessages ? (currentConversation.opi_sn || '') : userId, whatsappid: item.whatsapp_phone_number, lasttime: '' });
setMsgLoading(false);
receivedMessageList(item.sn, data);
const thisLastTime = data.length > 0 ? data[0].orgmsgtime : '';
diff --git a/vite.config.js b/vite.config.js
index 11563f7..8de8c51 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -16,17 +16,15 @@ const buildDatePlugin = () => {
};
};
// PWA plugin
-const manifestForPlugIn = {
+const manifestForPWAPlugIn = {
// strategies: 'generateSW',
registerType: 'prompt',
- // includeAssests: ['/src/assets/logo-gh.png'],
- // registerType: 'autoUpdate',
- devOptions: {
- enabled: true
- },
+ devOptions: { enabled: true },
workbox: {
+ // dontCacheBustURLsMatching: /\/maintenance/,
navigateFallbackDenylist: [/^\/maintenance/],
globPatterns: ['**/*.{json,css,js,html,ico,png,svg,woff2}'],
+ globIgnores: ['**/maintenance.html', '**/maintenance/*'],
maximumFileSizeToCacheInBytes: 3000000,
clientsClaim: true,
// skipWaiting: true,
@@ -38,12 +36,12 @@ const manifestForPlugIn = {
cacheName: 'oss-cn-media',
expiration: {
maxEntries: 20,
- maxAgeSeconds: 60 * 60 * 24 * 7 // <== 7 days
+ maxAgeSeconds: 60 * 60 * 24 * 7, // <== 7 days
},
cacheableResponse: {
- statuses: [0, 200]
- }
- }
+ statuses: [0, 200],
+ },
+ },
},
{
urlPattern: /^https:\/\/hiana-crm\.oss-ap-southeast-1\.aliyuncs\.com\/.*/i,
@@ -52,12 +50,12 @@ const manifestForPlugIn = {
cacheName: 'oss-ap-media',
expiration: {
maxEntries: 20,
- maxAgeSeconds: 60 * 60 * 24 * 7 // <== 7 days
+ maxAgeSeconds: 60 * 60 * 24 * 7, // <== 7 days
},
cacheableResponse: {
- statuses: [0, 200]
- }
- }
+ statuses: [0, 200],
+ },
+ },
},
{
urlPattern: /^https:\/\/static-legacy\.dingtalk.com\/.*/i,
@@ -66,12 +64,12 @@ const manifestForPlugIn = {
cacheName: 'dingtalk-avatar-media',
expiration: {
maxEntries: 50,
- maxAgeSeconds: 60 * 60 * 24 * 7 // <== 7 days
+ maxAgeSeconds: 60 * 60 * 24 * 7, // <== 7 days
},
cacheableResponse: {
- statuses: [0, 200]
- }
- }
+ statuses: [0, 200],
+ },
+ },
},
],
},
@@ -116,7 +114,7 @@ export default defineConfig({
__BUILD_DATE__: JSON.stringify(`${today}`),
__BUILD_VERSION__: JSON.stringify(`${packageJson.version}`),
},
- plugins: [react(), WindiCSS(), buildDatePlugin(), VitePWA(manifestForPlugIn)],
+ plugins: [react(), WindiCSS(), buildDatePlugin(), VitePWA(manifestForPWAPlugIn)],
server: {
host: '0.0.0.0',
},
@@ -137,6 +135,7 @@ export default defineConfig({
maintenance: './maintenance.html'
},
output: {
+ entryFileNames: '[name]/build.[hash].js',
// manualChunks(id) {
// if (id.includes('node_modules')) {
// return id.toString().split('node_modules/')[1].split('/')[0].toString();