Просмотр исходного кода

Merge pull request #1391 from visuddhinanda/agile

discusstion 回复内容必填
visuddhinanda 2 лет назад
Родитель
Сommit
6c8ab5d738

+ 1 - 1
dashboard/src/components/api/Comment.ts

@@ -25,7 +25,7 @@ export interface ICommentApiData {
   content_type?: TContentType;
   parent?: string;
   status?: "active" | "close";
-  children_count: number;
+  children_count?: number;
   editor: IUserApiData;
   created_at?: string;
   updated_at?: string;

+ 16 - 4
dashboard/src/components/discussion/DiscussionCreate.tsx

@@ -153,11 +153,23 @@ const DiscussionCreateWidget = ({
               ) : contentType === "markdown" ? (
                 <Form.Item
                   name="content"
-                  label={intl.formatMessage({
-                    id: "forms.message.question.description.required",
-                  })}
+                  rules={[{ required: typeof parent !== "undefined" }]}
+                  label={
+                    typeof parent === "undefined"
+                      ? intl.formatMessage({
+                          id: "forms.message.question.description.option",
+                        })
+                      : intl.formatMessage({
+                          id: "forms.fields.replay.label",
+                        })
+                  }
                 >
-                  <MDEditor placeholder="问题的详细描述(选填)" />
+                  <MDEditor
+                    placeholder={
+                      "问题的详细描述" +
+                      (typeof parent !== "undefined" ? "" : "(选填)")
+                    }
+                  />
                 </Form.Item>
               ) : (
                 <></>

+ 0 - 1
dashboard/src/components/template/ParaHandle.tsx

@@ -68,7 +68,6 @@ interface IWidget {
 }
 const Widget = ({ props }: IWidget) => {
   const prop = JSON.parse(atob(props)) as IWidgetParaHandleCtl;
-  console.log(prop);
   return (
     <>
       <ParaHandleCtl {...prop} />

+ 34 - 32
dashboard/src/components/template/SentEdit/EditInfo.tsx

@@ -9,42 +9,42 @@ import { ISentence } from "../SentEdit";
 
 const { Text } = Typography;
 
+interface IDetailsWidget {
+  data: ISentence;
+  isPr?: boolean;
+}
+const Details = ({ data, isPr }: IDetailsWidget) => (
+  <Space>
+    <Channel {...data.channel} />
+    <User {...data.editor} showAvatar={isPr ? true : false} />
+    {data.prEditAt ? (
+      <TimeShow
+        type="secondary"
+        updatedAt={data.prEditAt}
+        createdAt={data.createdAt}
+      />
+    ) : (
+      <TimeShow
+        type="secondary"
+        updatedAt={data.updateAt}
+        createdAt={data.createdAt}
+      />
+    )}
+    {data.acceptor ? <User {...data.acceptor} showAvatar={false} /> : undefined}
+    {data.acceptor ? "accept at" : undefined}
+    {data.prEditAt ? (
+      <TimeShow type="secondary" updatedAt={data.updateAt} showLabel={false} />
+    ) : undefined}
+  </Space>
+);
+
 interface IWidget {
   data: ISentence;
   isPr?: boolean;
   compact?: boolean;
 }
 const EditInfoWidget = ({ data, isPr = false, compact = false }: IWidget) => {
-  const details = (
-    <Space>
-      <Channel {...data.channel} />
-      <User {...data.editor} showAvatar={isPr ? true : false} />
-      {data.prEditAt ? (
-        <TimeShow
-          type="secondary"
-          updatedAt={data.prEditAt}
-          createdAt={data.createdAt}
-        />
-      ) : (
-        <TimeShow
-          type="secondary"
-          updatedAt={data.updateAt}
-          createdAt={data.createdAt}
-        />
-      )}
-      {data.acceptor ? (
-        <User {...data.acceptor} showAvatar={false} />
-      ) : undefined}
-      {data.acceptor ? "accept at" : undefined}
-      {data.prEditAt ? (
-        <TimeShow
-          type="secondary"
-          updatedAt={data.updateAt}
-          showLabel={false}
-        />
-      ) : undefined}
-    </Space>
-  );
+  console.log("data.createdAt", data.createdAt, data.updateAt);
   return (
     <div style={{ fontSize: "80%" }}>
       <Text type="secondary">
@@ -53,10 +53,12 @@ const EditInfoWidget = ({ data, isPr = false, compact = false }: IWidget) => {
             <StudioName
               data={data.studio}
               showName={false}
-              popOver={compact ? details : undefined}
+              popOver={
+                compact ? <Details data={data} isPr={isPr} /> : undefined
+              }
             />
           )}
-          {compact ? undefined : details}
+          {compact ? undefined : <Details data={data} isPr={isPr} />}
         </Space>
       </Text>
     </div>

+ 2 - 1
dashboard/src/locales/zh-Hans/forms.ts

@@ -78,7 +78,8 @@ const items = {
   "forms.fields.receiver.label": "接收",
   "forms.fields.event.label": "事件",
   "forms.message.question.required": "请输入您的问题(必填)",
-  "forms.message.question.description.required": "问题详细描述(选填)",
+  "forms.message.question.description.option": "问题详细描述(选填)",
+  "forms.fields.replay.label": "回复",
 };
 
 export default items;

+ 2 - 2
dashboard/src/pages/library/article/show.tsx

@@ -130,7 +130,7 @@ const Widget = () => {
             <NetStatus style={{ color: "white" }} />
           </div>
           <div></div>
-          <Space key="right">
+          <div style={{ display: "flex" }} key="right">
             {type === "article" && loadedArticleData ? (
               <Button
                 ghost
@@ -193,7 +193,7 @@ const Widget = () => {
                 }
               />
             </Tooltip>
-          </Space>
+          </div>
         </Header>
       </Affix>
       <div style={{ width: "100%", display: "flex" }}>