浏览代码

Merge branch 'dev/v1.0.67_yf' of jianyu/web into feature/v1.0.67

yangfeng 9 月之前
父节点
当前提交
6a324829db
共有 1 个文件被更改,包括 283 次插入269 次删除
  1. 283 269
      apps/bigmember_pc/src/components/article-item/ArticleItem.vue

+ 283 - 269
apps/bigmember_pc/src/components/article-item/ArticleItem.vue

@@ -9,31 +9,91 @@
     }"
     @click="onClick"
   >
-    <div class="article-item-header">
-      <input
-        v-if="config.collect"
-        @change="changeCheck($event)"
-        @click.stop
-        class="custom-checkbox title-text-checkbox"
-        name="bid-list"
-        type="checkbox"
-        :dataid="article._id"
-      />
-      <div class="a-i-con">
-        <div class="content-item">
-          <div
-            v-html="calcTitle"
-            class="a-i-left visited-hd"
-            :class="config.push || config.bidding ? 'ellipsis-3' : 'ellipsis'"
-          ></div>
+    <div class="list-item-left">
+      <slot name="prefix"></slot>
+    </div>
+    <div class="list-item-content">
+      <div class="article-item-header">
+        <input
+          v-if="config.collect"
+          @change="changeCheck($event)"
+          @click.stop
+          class="custom-checkbox title-text-checkbox"
+          name="bid-list"
+          type="checkbox"
+          :dataid="article._id"
+        />
+        <div class="a-i-con">
+          <div class="content-item">
+            <div
+              v-html="calcTitle"
+              class="a-i-left visited-hd"
+              :class="config.push || config.bidding ? 'ellipsis-3' : 'ellipsis'"
+              @click="onClick"
+            ></div>
+          </div>
+          <div class="time-container">
+            <span class="el-icon-jy-time" v-if="!config.gray"></span>
+            <span class="time-text">
+              <slot name="right-time">{{
+                dateFromNow(article.publishtime * 1000) ||
+                dateFromNow(article.publishTime * 1000)
+              }}</slot>
+            </span>
+          </div>
         </div>
-        <div class="time-container">
-          <span class="el-icon-jy-time" v-if="!config.gray"></span>
-          <span class="time-text">
-            <slot name="right-time">{{
-              dateFromNow(article.publishtime * 1000) ||
-              dateFromNow(article.publishTime * 1000)
-            }}</slot>
+      </div>
+      <div
+        v-if="config.detail && article.detail && calcDetail"
+        class="a-i-detail ellipsis"
+        v-html="calcDetail"
+      ></div>
+      <div class="a-i-right">
+        <div class="tags">
+          <span
+            class="tag tag-user"
+            v-if="
+              article.site === '剑鱼信息发布平台' ||
+              article.spidercode === 'a_jyxxfbpt_gg' ||
+              article.spiderCode === 'a_jyxxfbpt_gg'
+            "
+            >业主委托项目</span
+          >
+          <span class="tag tag-own" v-if="buySubject && article.source === 1"
+            >个人订阅</span
+          >
+          <span class="tag tag-ent" v-if="buySubject && article.source === 2"
+            >企业自动分发</span
+          >
+          <span class="tag tag-ent" v-if="buySubject && article.source === 3"
+            >企业手动分发</span
+          >
+          <span
+            class="tag"
+            v-if="calcArea"
+            :class="{
+              'tag-handle': tagClickList.includes('area') && article.areaUrl
+            }"
+            @click.stop="tagClick('area')"
+          >
+            {{ calcArea }}</span
+          >
+          <span
+            class="tag orange"
+            :class="{
+              'tag-handle':
+                tagClickList.includes('subtype') && article.subtypeUrl
+            }"
+            v-if="article.type || article.subtype"
+            @click.stop="tagClick('subtype')"
+          >
+            {{ article.type || article.subtype }}
+          </span>
+          <span class="tag green" v-if="calcBuyerclass">{{
+            article.buyerclass || article.buyerClass
+          }}</span>
+          <span class="tag dpink" v-if="calcBudget && calcBudget !== '0元'">
+            {{ calcBudget }}
           </span>
           <span
             v-if="config.gray && (article.ca_fileExists || article.fileExists)"
@@ -41,255 +101,208 @@
             >有附件</span
           >
         </div>
+
+        <div style="display: flex; align-items: center">
+          <el-popover
+            popper-class="statusPopover"
+            placement="left"
+            :visible-arrow="false"
+            :append-to-body="false"
+            v-if="vt === 'q'"
+            @show="setShow"
+            trigger="hover"
+          >
+            <el-table maxHeight="288px" :border="true" :data="gridData">
+              <el-table-column
+                align="center"
+                width="88"
+                prop="name"
+                label="员工姓名"
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                width="120"
+                prop="phone"
+                label="手机号"
+              ></el-table-column>
+              <!-- 信息来源 -->
+              <el-table-column label="信息来源" align="center" width="112">
+                <template slot-scope="scope">
+                  {{ formatSource(scope.row.source) || '-' }}
+                </template>
+              </el-table-column>
+              <el-table-column
+                class-name="pushTime"
+                align="center"
+                width="136"
+                prop="date"
+                label="推送时间"
+              ></el-table-column>
+              <el-table-column
+                align="center"
+                width="96"
+                prop="isvisit"
+                label="查看状态"
+              ></el-table-column>
+              <el-table-column
+                class-name="viewTime"
+                align="center"
+                width="136"
+                prop="visittime"
+                label="最近一次查看时间"
+              ></el-table-column>
+            </el-table>
+            <span slot="reference" class="view-status">查看状态</span>
+          </el-popover>
+          <slot name="right-handle-container"></slot>
+          <!-- 参标-->
+          <div
+            v-if="config.joinBid && 'joinBid' in article"
+            class="join-bid"
+            @click.prevent.stop="joinBidChange"
+          >
+            <i
+              class="j-self-icon"
+              :class="
+                article.joinBid ? 'icon-canbiao-img-active' : 'icon-canbiao-img'
+              "
+            ></i>
+            <span>{{ article.joinBid ? '终止参标' : '参标' }}</span>
+          </div>
+          <!-- 收藏-->
+          <div
+            class="right-actions"
+            v-if="config.collect"
+            @click.stop="collectChange($event)"
+          >
+            <i
+              class="icon-collect"
+              :class="{ checked: article.collection }"
+              :dataid="article._id"
+            ></i>
+            <span
+              name="right-action"
+              style="font-size: 14px; margin-left: 4px"
+              >{{ article.collection ? '已收藏' : '收藏' }}</span
+            >
+          </div>
+        </div>
       </div>
-    </div>
-    <div
-      v-if="config.detail && article.detail && calcDetail"
-      class="a-i-detail ellipsis"
-      v-html="calcDetail"
-    ></div>
-    <div class="a-i-right">
-      <div class="tags">
-        <span
-          class="tag tag-user"
-          v-if="
-            article.site === '剑鱼信息发布平台' ||
-            article.spidercode === 'a_jyxxfbpt_gg'
-          "
-          >业主委托项目</span
-        >
-        <span class="tag tag-own" v-if="buySubject && article.source === 1"
-          >个人订阅</span
-        >
-        <span class="tag tag-ent" v-if="buySubject && article.source === 2"
-          >企业自动分发</span
-        >
-        <span class="tag tag-ent" v-if="buySubject && article.source === 3"
-          >企业手动分发</span
-        >
-        <span
-          class="tag"
-          v-if="calcArea"
-          :class="{
-            'tag-handle': tagClickList.includes('area') && article.areaUrl
-          }"
-          @click.stop="tagClick('area')"
-        >
-          {{ calcArea }}</span
-        >
-        <span
-          class="tag orange"
-          :class="{
-            'tag-handle': tagClickList.includes('subtype') && article.subtypeUrl
-          }"
-          v-if="article.type || article.subtype"
-          @click.stop="tagClick('subtype')"
-        >
-          {{ article.type || article.subtype }}
-        </span>
-        <span class="tag green" v-if="calcBuyerclass">{{
-          article.buyerclass || article.buyerClass
-        }}</span>
-        <span class="tag dpink" v-if="calcBudget && calcBudget !== '0元'">
-          {{ calcBudget }}
-        </span>
-        <span
-          v-if="config.gray && (article.ca_fileExists || article.fileExists)"
-          class="haveFile"
-          >有附件</span
-        >
-      </div>
-      <div style="display: flex; align-items: center">
-        <el-popover
-          popper-class="statusPopover"
-          placement="left"
-          :visible-arrow="false"
-          :append-to-body="false"
-          v-if="vt === 'q'"
-          @show="setShow"
-          trigger="hover"
+      <div class="list-detail" v-show="showDetailModel">
+        <p
+          class="l-d-item"
+          v-if="article.buyer || article.buyerTel || article.budget"
         >
-          <el-table maxHeight="288px" :border="true" :data="gridData">
-            <el-table-column
-              align="center"
-              width="88"
-              prop="name"
-              label="员工姓名"
-            ></el-table-column>
-            <el-table-column
-              align="center"
-              width="120"
-              prop="phone"
-              label="手机号"
-            ></el-table-column>
-            <!-- 信息来源 -->
-            <el-table-column label="信息来源" align="center" width="112">
-              <template slot-scope="scope">
-                {{ formatSource(scope.row.source) || '-' }}
-              </template>
-            </el-table-column>
-            <el-table-column
-              class-name="pushTime"
-              align="center"
-              width="136"
-              prop="date"
-              label="推送时间"
-            ></el-table-column>
-            <el-table-column
-              align="center"
-              width="96"
-              prop="isvisit"
-              label="查看状态"
-            ></el-table-column>
-            <el-table-column
-              class-name="viewTime"
-              align="center"
-              width="136"
-              prop="visittime"
-              label="最近一次查看时间"
-            ></el-table-column>
-          </el-table>
-          <span slot="reference" class="view-status">查看状态</span>
-        </el-popover>
-        <slot name="right-handle-container"></slot>
-        <!-- 参标-->
-        <div
-          v-if="config.joinBid && 'joinBid' in article"
-          class="join-bid"
-          @click.prevent.stop="joinBidChange"
+          <span v-if="article.buyer">
+            <i class="l-d-item-label">采购单位:</i>
+            <em
+              v-for="(buyer, b) in formatBuyer(article.buyer)"
+              :key="b"
+              @click="goPortrayal('buyerDesc', buyer)"
+              class="highlight-text pointer"
+            >
+              {{ buyer }}
+              <em v-if="b != formatBuyer(article.buyer).length - 1">、</em>
+            </em>
+          </span>
+          <span v-if="article.buyerTel">
+            <i class="l-d-item-label">采购单位联系方式:</i>
+            {{ article.buyerPerson }}
+            <em v-if="article.buyerPerson">,</em>
+            {{ article.buyerTel }}
+            <em
+              class="more-tel"
+              v-if="article.buyerTel"
+              @click="goPortrayal('buyerDesc', article.buyer, 'contact')"
+              >获取更多</em
+            >
+          </span>
+          <span v-if="article.budget">
+            <i class="l-d-item-label">预算金额:</i>
+            {{ moneyUnit(article.budget) }}
+          </span>
+        </p>
+        <p class="l-d-item" v-if="article.agency || article.agencyTel">
+          <span v-if="article.agency">
+            <i class="l-d-item-label">代理机构:</i>
+            {{ article.agency }}
+          </span>
+          <span v-if="article.agencyTel">
+            <i class="l-d-item-label">代理机构联系方式:</i>
+            {{ article.agencyPerson }}<em v-if="article.agencyPerson">,</em
+            >{{ article.agencyTel }}</span
+          >
+        </p>
+        <p
+          class="l-d-item"
+          v-if="article.winner || article.winnerTel || article.bidAmount"
         >
-          <i
-            class="j-self-icon"
-            :class="
-              article.joinBid ? 'icon-canbiao-img-active' : 'icon-canbiao-img'
-            "
-          ></i>
-          <span>{{ article.joinBid ? '终止参标' : '参标' }}</span>
-        </div>
-        <!-- 收藏-->
-        <div
-          class="right-actions"
-          v-if="config.collect"
-          @click.stop="collectChange($event)"
+          <span v-if="article.winnerInfo && article.winnerInfo.length > 0">
+            <i class="l-d-item-label">中标单位:</i>
+            <em
+              v-for="(w, i) in article.winnerInfo"
+              :key="w.winnerId"
+              @click="goPortrayal('entDesc', w.winnerId)"
+              class="highlight-text pointer"
+            >
+              {{ w.winner }}
+              <em v-if="i != article.winnerInfo.length - 1" :key="i + '_1'"
+                >、</em
+              >
+            </em>
+          </span>
+          <span v-if="article.winnerTel">
+            <i class="l-d-item-label">中标单位联系方式:</i>
+            {{ article.winnerPerson }}
+            <em v-if="article.winnerPerson">,</em>
+            {{ article.winnerTel }}
+            <em
+              class="more-tel"
+              v-if="article.winnerInfo && article.winnerInfo.length === 1"
+              @click="
+                goPortrayal(
+                  'entDesc',
+                  article.winnerInfo[0].winnerId,
+                  'contact'
+                )
+              "
+              >获取更多</em
+            >
+          </span>
+          <span v-if="article.bidAmount">
+            <i class="l-d-item-label">中标金额:</i>
+            {{ moneyUnit(article.bidAmount) }}
+          </span>
+        </p>
+        <p
+          class="l-d-item"
+          v-if="
+            article.signendTime ||
+            article.bidendTime ||
+            article.bidEndTime ||
+            article.bidOpenTime
+          "
         >
-          <i
-            class="icon-collect"
-            :class="{ checked: article.collection }"
-            :dataid="article._id"
-          ></i>
-          <span name="right-action" style="font-size: 14px; margin-left: 4px">{{
-            article.collection ? '已收藏' : '收藏'
-          }}</span>
-        </div>
+          <span v-if="article.signendTime">
+            <i class="l-d-item-label">报名截止日期:</i>
+            {{ dateFromNow(article.signendTime * 1000) }}
+          </span>
+          <span v-if="article.bidendTime || article.bidEndTime">
+            <i class="l-d-item-label">投标截止日期:</i>
+            {{
+              dateFromNow(article.bidendTime * 1000) ||
+              dateFromNow(article.bidEndTime * 1000)
+            }}
+          </span>
+          <span v-if="article.bidOpenTime">
+            <i class="l-d-item-label">开标日期:</i>
+            {{ dateFromNow(article.bidOpenTime * 1000) }}
+          </span>
+        </p>
       </div>
     </div>
-    <div class="list-detail" v-show="showDetailModel">
-      <p
-        class="l-d-item"
-        v-if="article.buyer || article.buyerTel || article.budget"
-      >
-        <span v-if="article.buyer">
-          <i class="l-d-item-label">采购单位:</i>
-          <em
-            v-for="(buyer, b) in formatBuyer(article.buyer)"
-            :key="b"
-            @click.stop="goPortrayal('buyerDesc', buyer)"
-            class="highlight-text pointer"
-          >
-            {{ buyer }}
-            <em v-if="b != formatBuyer(article.buyer).length - 1">、</em>
-          </em>
-        </span>
-        <span v-if="article.buyerTel">
-          <i class="l-d-item-label">采购单位联系方式:</i>
-          {{ article.buyerPerson }}
-          <em v-if="article.buyerPerson">,</em>
-          {{ article.buyerTel }}
-          <em
-            class="more-tel"
-            v-if="article.buyerTel"
-            @click.stop="goPortrayal('buyerDesc', article.buyer, 'contact')"
-            >获取更多</em
-          >
-        </span>
-        <span v-if="article.budget">
-          <i class="l-d-item-label">预算金额:</i>
-          {{ moneyUnit(article.budget) }}
-        </span>
-      </p>
-      <p class="l-d-item" v-if="article.agency || article.agencyTel">
-        <span v-if="article.agency">
-          <i class="l-d-item-label">代理机构:</i>
-          {{ article.agency }}
-        </span>
-        <span v-if="article.agencyTel">
-          <i class="l-d-item-label">代理机构联系方式:</i>
-          {{ article.agencyPerson }}<em v-if="article.agencyPerson">,</em
-          >{{ article.agencyTel }}</span
-        >
-      </p>
-      <p
-        class="l-d-item"
-        v-if="article.winner || article.winnerTel || article.bidAmount"
-      >
-        <span v-if="article.winnerInfo && article.winnerInfo.length > 0">
-          <i class="l-d-item-label">中标单位:</i>
-          <em
-            v-for="(w, i) in article.winnerInfo"
-            :key="w.winnerId"
-            @click.stop="goPortrayal('entDesc', w.winnerId)"
-            class="highlight-text pointer"
-          >
-            {{ w.winner }}
-            <em v-if="i != article.winnerInfo.length - 1" :key="i + '_1'"
-              >、</em
-            >
-          </em>
-        </span>
-        <span v-if="article.winnerTel">
-          <i class="l-d-item-label">中标单位联系方式:</i>
-          {{ article.winnerPerson }}
-          <em v-if="article.winnerPerson">,</em>
-          {{ article.winnerTel }}
-          <em
-            class="more-tel"
-            v-if="article.winnerInfo && article.winnerInfo.length === 1"
-            @click.stop="
-              goPortrayal('entDesc', article.winnerInfo[0].winnerId, 'contact')
-            "
-            >获取更多</em
-          >
-        </span>
-        <span v-if="article.bidAmount">
-          <i class="l-d-item-label">中标金额:</i>
-          {{ moneyUnit(article.bidAmount) }}
-        </span>
-      </p>
-      <p
-        class="l-d-item"
-        v-if="
-          article.signendTime ||
-          article.bidendTime ||
-          article.bidEndTime ||
-          article.bidOpenTime
-        "
-      >
-        <span v-if="article.signendTime">
-          <i class="l-d-item-label">报名截止日期:</i>
-          {{ dateFromNow(article.signendTime * 1000) }}
-        </span>
-        <span v-if="article.bidendTime || article.bidEndTime">
-          <i class="l-d-item-label">投标截止日期:</i>
-          {{
-            dateFromNow(article.bidendTime * 1000) ||
-            dateFromNow(article.bidEndTime * 1000)
-          }}
-        </span>
-        <span v-if="article.bidOpenTime">
-          <i class="l-d-item-label">开标日期:</i>
-          {{ dateFromNow(article.bidOpenTime * 1000) }}
-        </span>
-      </p>
+    <div class="list-item-right">
+      <slot name="suffix"></slot>
     </div>
   </div>
 </template>
@@ -456,7 +469,7 @@ export default {
       if (inFile) {
         const keyword = keywords[0]
         if (keyword?.length > 3) {
-          return `(<span class="highlight-text-orange-bd">${keyword.substring(
+          return `(<span class="highlight-text">${keyword.substring(
             0,
             3
           )}</span>...在附件中)`
@@ -770,7 +783,8 @@ $border-color: #ececec;
   }
   .a-i-detail {
     width: calc(100% - 84px);
-    padding: 6px 40px 0 0;
+    max-width: 920px;
+    padding: 6px 40px 0 30px;
     font-size: 14px;
     line-height: 22px;
     color: #686868;