Преглед изворни кода

feat: 云版管理相关功能

outaozhen пре 4 година
родитељ
комит
309faa814f

+ 1 - 1
src/pages/Product/Cloud/components/Detail/LowerList.jsx

@@ -47,7 +47,7 @@ const RoadpricingLowerList = props => {
                 renderItem={item => (
                   <List.Item>
                     <a>@{item.operatorName}</a> {item.content}
-                    <List.Item.Meta description={dayjsFormat(item.createTime)} />
+                    <List.Item.Meta description={dayjsFormat(item.create_time)} />
                   </List.Item>
                 )}
               />

+ 103 - 14
src/pages/Product/Cloud/components/Detail/TabList.jsx

@@ -15,7 +15,7 @@ export const lockEnum = {
 const RoadpricingTabList = props => {
   const {
     compilationList,
-    cloudUser: { online_list = [] },
+    cloudUser: { online_list = [], mobile, username },
     projectType,
     ssoId
   } = props
@@ -37,6 +37,8 @@ const RoadpricingTabList = props => {
     compilationId: '',
     compilationName: '',
     upgradeTypeEnum: '',
+    compilationListName: '',
+    deadline: '',
     lockTypeEnum: '',
     visible: false,
     loading: false
@@ -88,10 +90,31 @@ const RoadpricingTabList = props => {
       width: '25%',
       render: (_, record) => (
         <>
-          {record.isUpgrade ? (
+          <Button
+            type="primary"
+            danger
+            ghost
+            size="small"
+            className="m-2px"
+            onClick={() =>
+              setRoadPricingUpgrade({
+                ...setRoadPricingUpgrade,
+                visible: true,
+                type: titleType.GIVE,
+                // eslint-disable-next-line no-underscore-dangle
+                compilationId: record._id,
+                compilationName: record.name,
+                lockTypeEnum: lockTypeEnum.GIVE,
+                upgradeTypeEnum: upgradeTypeEnum.UPGRADE
+              })
+            }>
+            赠送
+          </Button>
+          {record.lock === 1 ? (
             <>
               <Button
                 type="primary"
+                danger
                 ghost
                 size="small"
                 className="m-2px"
@@ -99,18 +122,43 @@ const RoadpricingTabList = props => {
                   setRoadPricingUpgrade({
                     ...setRoadPricingUpgrade,
                     visible: true,
-                    type: titleType.GIVE,
+                    type: titleType.DEMOTION,
                     // eslint-disable-next-line no-underscore-dangle
                     compilationId: record._id,
                     compilationName: record.name,
-                    lockTypeEnum: lockTypeEnum.GIVE,
+                    compilationListName: record.name,
+                    upgradeTypeEnum: upgradeTypeEnum.DEMOTION
+                  })
+                }>
+                降级
+              </Button>
+              <Button
+                type="primary"
+                danger
+                ghost
+                size="small"
+                className="m-2px"
+                onClick={() =>
+                  setRoadPricingUpgrade({
+                    ...setRoadPricingUpgrade,
+                    visible: true,
+                    type: titleType.SALE,
+                    // eslint-disable-next-line no-underscore-dangle
+                    compilationId: record._id,
+                    compilationName: record.name,
+                    lockTypeEnum: lockTypeEnum.SALE,
                     upgradeTypeEnum: upgradeTypeEnum.UPGRADE
                   })
                 }>
-                赠送
+                销售
               </Button>
+            </>
+          ) : null}
+          {record.lock === 2 ? (
+            <>
               <Button
                 type="primary"
+                danger
                 ghost
                 size="small"
                 className="m-2px"
@@ -118,43 +166,70 @@ const RoadpricingTabList = props => {
                   setRoadPricingUpgrade({
                     ...setRoadPricingUpgrade,
                     visible: true,
-                    type: titleType.DEMOTION
+                    type: titleType.DEMOTION,
+                    // eslint-disable-next-line no-underscore-dangle
+                    compilationId: record._id,
+                    compilationName: record.name,
+                    compilationListName: record.name,
+                    upgradeTypeEnum: upgradeTypeEnum.DEMOTION
                   })
                 }>
                 降级
               </Button>
+            </>
+          ) : null}
+          {record.lock === 3 ? (
+            <>
               <Button
                 type="primary"
+                danger
                 ghost
                 size="small"
+                className="m-2px"
                 onClick={() =>
                   setRoadPricingUpgrade({
                     ...setRoadPricingUpgrade,
                     visible: true,
-                    type: titleType.DEADLINE
+                    type: titleType.DEMOTION,
+                    // eslint-disable-next-line no-underscore-dangle
+                    compilationId: record._id,
+                    compilationName: record.name,
+                    compilationListName: record.name,
+                    upgradeTypeEnum: upgradeTypeEnum.DEMOTION
                   })
                 }>
-                限期
+                降级
               </Button>
             </>
-          ) : (
+          ) : null}
+          {record.isUpgrade ? (
             <>
               <Button
                 type="primary"
                 ghost
                 size="small"
-                className="m-2px"
                 onClick={() =>
                   setRoadPricingUpgrade({
                     ...setRoadPricingUpgrade,
                     visible: true,
-                    type: titleType.GIVE
+                    type: titleType.DEADLINE,
+                    deadline: record.deadline,
+                    // eslint-disable-next-line no-underscore-dangle
+                    compilationId: record._id,
+                    compilationName: record.name,
+                    compilationListName: record.name,
+                    lockTypeEnum: record.lock,
+                    upgradeTypeEnum: upgradeTypeEnum.DEADLINE
                   })
                 }>
-                赠送
+                限期
               </Button>
+            </>
+          ) : (
+            <>
               <Button
                 type="primary"
+                danger
                 ghost
                 size="small"
                 className="m-2px"
@@ -162,13 +237,19 @@ const RoadpricingTabList = props => {
                   setRoadPricingUpgrade({
                     ...setRoadPricingUpgrade,
                     visible: true,
-                    type: titleType.LEND
+                    type: titleType.LEND,
+                    // eslint-disable-next-line no-underscore-dangle
+                    compilationId: record._id,
+                    compilationName: record.name,
+                    lockTypeEnum: lockTypeEnum.LEND,
+                    upgradeTypeEnum: upgradeTypeEnum.UPGRADE
                   })
                 }>
                 借出
               </Button>
               <Button
                 type="primary"
+                danger
                 ghost
                 size="small"
                 className="m-2px"
@@ -176,7 +257,12 @@ const RoadpricingTabList = props => {
                   setRoadPricingUpgrade({
                     ...setRoadPricingUpgrade,
                     visible: true,
-                    type: titleType.SALE
+                    type: titleType.SALE,
+                    // eslint-disable-next-line no-underscore-dangle
+                    compilationId: record._id,
+                    compilationName: record.name,
+                    lockTypeEnum: lockTypeEnum.SALE,
+                    upgradeTypeEnum: upgradeTypeEnum.UPGRADE
                   })
                 }>
                 销售
@@ -241,10 +327,13 @@ const RoadpricingTabList = props => {
         onCancel={() => setRoadPricingUpgrade({ ...roadPricingUpgrade, visible: false })}
         projectType={projectType}
         ssoId={ssoId}
+        cloudUser={{ mobile, username }}
         compilationId={roadPricingUpgrade.compilationId}
         compilationName={roadPricingUpgrade.compilationName}
         lock={roadPricingUpgrade.lockTypeEnum}
         upgradeType={roadPricingUpgrade.upgradeTypeEnum}
+        compilationListName={roadPricingUpgrade.compilationListName}
+        deadline={roadPricingUpgrade.deadline}
       />
     </div>
   )

+ 42 - 17
src/pages/Product/Cloud/components/Detail/UpgradeModal.jsx

@@ -1,6 +1,6 @@
-import React from 'react'
+import React, { useState } from 'react'
 import { Modal, Form, Switch, DatePicker } from 'antd'
-import dayjs from 'dayjs'
+// import dayjs from 'dayjs'
 import { dayjsFormat } from '@/utils/utils'
 import { useDispatch } from 'umi'
 
@@ -26,11 +26,11 @@ export const titleType = {
 
 const UpgradeModal = props => {
   const modalTitleEnum = {
-    1: '确认借出',
-    2: '确认销售',
-    3: '确认赠送',
-    4: '确认降级',
-    5: '确认限期'
+    1: '借出',
+    2: '销售',
+    3: '赠送',
+    4: '降级',
+    5: '限期'
   }
   const {
     visible,
@@ -42,16 +42,20 @@ const UpgradeModal = props => {
     ssoId,
     compilationId,
     compilationName,
+    compilationListName,
     lock,
-    upgradeType
+    upgradeType,
+    cloudUser,
+    deadline
   } = props
   const [form] = Form.useForm()
   const dispatch = useDispatch()
   const layout = {
     layout: 'vertical'
   }
+  const [showDeadline, setShowDeadline] = useState(false)
   const onChange = value => {
-    console.log(value)
+    setShowDeadline(value)
   }
   const handleonOk = () => {
     form.validateFields().then(values => {
@@ -65,6 +69,7 @@ const UpgradeModal = props => {
         ssoId,
         compilationId,
         compilationName,
+        compilationListName,
         lock,
         upgradeType
       })
@@ -83,19 +88,39 @@ const UpgradeModal = props => {
       confirmLoading={loading}
       onCancel={onCancel}
       onOk={handleonOk}>
-      {type === lockTypeEnum.GIVE ? (
+      {type === lockTypeEnum.GIVE || type === lockTypeEnum.LEND || type === lockTypeEnum.SALE ? (
         <div className="mb-6">
-          <p className="pb-3">为用户aaa,bbb 赠送 ccc</p>
+          <p className="pb-3">
+            为用户<b>{cloudUser.mobile}</b>,<b>{cloudUser.username}</b> {modalTitleEnum[type]}{' '}
+            <b>{compilationName}</b>
+          </p>
           <div className="pb-5">
-            <Switch onChange={onChange} />
+            <Switch onChange={onChange} checked={showDeadline} />
             <span className="ml-2">限期</span>
           </div>
           <Form {...layout} form={form}>
-            <Form.Item
-              name="deadline"
-              label="到期时间"
-              rules={[{ required: true, message: '到期时间' }]}>
-              <DatePicker style={{ width: '100%' }} disabled={true} />
+            <Form.Item name="deadline" label="到期时间">
+              <DatePicker style={{ width: '100%' }} disabled={!showDeadline} />
+            </Form.Item>
+          </Form>
+        </div>
+      ) : null}
+      {type === titleType.DEMOTION ? (
+        <div className="mb-6">
+          未用户<b>{cloudUser.mobile}</b>,<b>{cloudUser.username}</b> 降级 <b>{cloudUser.name}</b>{' '}
+          <b>{compilationListName}</b>
+        </div>
+      ) : null}
+      {type === titleType.DEADLINE ? (
+        <div className="mb-6">
+          未用户<b>{cloudUser.mobile}</b>,<b>{cloudUser.username}</b> <b>{cloudUser.name}</b>{' '}
+          <b>{compilationListName}</b> 设置延期
+          <div className="pt-5 pb-5">
+            当前限期为 <b>{deadline}</b>
+          </div>
+          <Form {...layout} form={form}>
+            <Form.Item name="deadline" label="到期时间">
+              <DatePicker style={{ width: '100%' }} disabled={!showDeadline} />
             </Form.Item>
           </Form>
         </div>