From ca25926fc9b32394c1f9c6d6b526db7a8cad4f07 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 12 十二月 2025 17:15:15 +0800
Subject: [PATCH] 1.海川开心-销售台账/采购台账,有可能同一个公司不同单子,但是开票登记的时候会一起,一对多或者多对一

---
 src/views/salesManagement/invoiceRegistration/index.vue | 1219 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 673 insertions(+), 546 deletions(-)

diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index e8a340c..e1f6b7f 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -1,369 +1,382 @@
 <template>
-  <div class="app-container">
-    <div class="search_form">
-      <el-form :inline="true" :model="searchForm">
-        <el-form-item label="瀹㈡埛鍚嶇О">
-          <el-input
-            v-model="searchForm.customerName"
-            style="width: 240px"
-            placeholder="璇疯緭鍏ュ悕绉版悳绱�"
-            clearable
-            :prefix-icon="Search"
-            @change="handleQuery"
-          />
-        </el-form-item>
-
-        <el-form-item>
-          <el-checkbox
-            v-model="searchForm.status"
-            label="涓嶆樉绀烘湭寮�绁ㄩ噾棰濅负0"
-            @change="handleQuery"
-          />
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button>
-          <el-button @click="resetForm"> 閲嶇疆 </el-button>
-          <el-button @click="handleExport" style="margin-right: 10px">瀵煎嚭</el-button>
-        </el-form-item>
-      </el-form>
-    </div>
-    <div class="table_list">
-      <div class="flex justify-between">
-        <div></div>
-        <div>
-        <el-button type="primary" @click="openForm" style="margin-bottom: 8px">
-          鏂板鐧昏
-        </el-button>
-        </div>
-      </div>
-      <el-table
-        :data="tableData"
-        :border="true"
-        height="calc(100vh - 21em)"
-        v-loading="tableLoading"
-        :expand-row-keys="expandedRowKeys"
-        :row-key="(row) => row.id"
-        show-summary
-        :summary-method="summarizeMainTable"
-        @expand-change="expandChange"
-        @selection-change="handleSelectionChange"
-      >
-        <el-table-column align="center" type="selection" width="55" />
-        <el-table-column type="expand">
-          <template #default="props">
-            <el-table
-              :data="props.row.children"
-              border
-              show-summary
-              :summary-method="summarizeChildrenTable"
-            >
-              <el-table-column
-                align="center"
-                label="搴忓彿"
-                type="index"
-                width="60"
-              />
-              <el-table-column label="浜у搧澶х被" prop="productCategory" />
-              <el-table-column
-                label="瑙勬牸鍨嬪彿"
-                prop="specificationModel"
-              />
-              <el-table-column label="鍗曚綅" prop="unit" width="70" />
-              <el-table-column label="鏁伴噺" prop="quantity" width="70" />
-              <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" />
-              <el-table-column
-                label="鍚◣鍗曚环(鍏�)"
-                prop="taxInclusiveUnitPrice"
-                :formatter="formattedNumber"
-              />
-              <el-table-column
-                label="鍚◣鎬讳环(鍏�)"
-                prop="taxInclusiveTotalPrice"
-                :formatter="formattedNumber"
-              />
-              <el-table-column
-                label="涓嶅惈绋庢�讳环(鍏�)"
-                prop="taxExclusiveTotalPrice"
-                :formatter="formattedNumber"
-              />
-              <el-table-column
-                label="寮�绁ㄦ暟"
-                prop="invoiceNum"
-                :formatter="formattedNumber"
-              />
-              <el-table-column
-                label="寮�绁ㄩ噾棰�(鍏�)"
-                prop="invoiceAmount"
-                :formatter="formattedNumber"
-              />
-              <el-table-column
-                label="鏈紑绁ㄦ暟"
-                prop="noInvoiceNum"
-                :formatter="formattedNumber"
-              />
-              <el-table-column
-                label="鏈紑绁ㄩ噾棰�(鍏�)"
-                prop="noInvoiceAmount"
-                :formatter="formattedNumber"
-              />
-            </el-table>
-          </template>
-        </el-table-column>
-        <el-table-column align="center" label="搴忓彿" type="index" width="60" />
-        <el-table-column
-          label="閿�鍞悎鍚屽彿"
-          prop="salesContractNo"
-          show-overflow-tooltip
-        />
-        <el-table-column
-          label="瀹㈡埛鍚嶇О"
-          prop="customerName"
-          show-overflow-tooltip
-        />
-        <el-table-column label="涓氬姟鍛�" prop="salesman" show-overflow-tooltip width="90"/>
-        <el-table-column
-          label="鍚堝悓閲戦(鍏�)"
-          prop="contractAmount"
-          show-overflow-tooltip
-          :formatter="formattedNumber"
+	<div class="app-container">
+		<div class="search_form">
+			<el-form :inline="true" :model="searchForm">
+				<el-form-item label="瀹㈡埛鍚嶇О">
+					<el-input
+						v-model="searchForm.customerName"
+						style="width: 240px"
+						placeholder="璇疯緭鍏ュ悕绉版悳绱�"
+						clearable
+						:prefix-icon="Search"
+						@change="handleQuery"
+					/>
+				</el-form-item>
+				<el-form-item>
+					<el-checkbox
+						v-model="searchForm.status"
+						label="涓嶆樉绀烘湭寮�绁ㄩ噾棰濅负0"
+						@change="handleQuery"
+					/>
+				</el-form-item>
+				<el-form-item>
+					<el-button type="primary" @click="handleQuery"> 鎼滅储 </el-button>
+					<el-button @click="resetForm"> 閲嶇疆 </el-button>
+					<el-button @click="handleExport" style="margin-right: 10px">瀵煎嚭</el-button>
+				</el-form-item>
+			</el-form>
+		</div>
+		<div class="table_list">
+			<div class="flex justify-between">
+				<div></div>
+				<div>
+					<el-button type="primary" @click="openForm" style="margin-bottom: 8px">
+						鏂板鐧昏
+					</el-button>
+				</div>
+			</div>
+			<el-table
+				:data="tableData"
+				:border="true"
+				height="calc(100vh - 21em)"
+				v-loading="tableLoading"
+				:expand-row-keys="expandedRowKeys"
+				:row-key="(row) => row.id"
+				show-summary
+				:summary-method="summarizeMainTable"
+				@expand-change="expandChange"
+				@selection-change="handleSelectionChange"
+			>
+				<el-table-column align="center" type="selection" width="55" />
+				<el-table-column type="expand">
+					<template #default="props">
+						<el-table
+							:data="props.row.children"
+							border
+							show-summary
+							:summary-method="summarizeChildrenTable"
+						>
+							<el-table-column
+								align="center"
+								label="搴忓彿"
+								type="index"
+								width="60"
+							/>
+							<el-table-column label="浜у搧澶х被" prop="productCategory" />
+							<el-table-column
+								label="瑙勬牸鍨嬪彿"
+								prop="specificationModel"
+								width="150"
+							/>
+							<el-table-column label="鍗曚綅" prop="unit" width="70" />
+							<el-table-column label="鏁伴噺" prop="quantity" width="70" />
+							<el-table-column label="绋庣巼(%)" prop="taxRate" width="80" />
+							<el-table-column
+								label="鍚◣鍗曚环(鍏�)"
+								prop="taxInclusiveUnitPrice"
+								:formatter="formattedNumber"
+							/>
+							<el-table-column
+								label="鍚◣鎬讳环(鍏�)"
+								prop="taxInclusiveTotalPrice"
+								:formatter="formattedNumber"
+							/>
+							<el-table-column
+								label="涓嶅惈绋庢�讳环(鍏�)"
+								prop="taxExclusiveTotalPrice"
+								:formatter="formattedNumber"
+							/>
+							<el-table-column
+								label="寮�绁ㄦ暟"
+								prop="invoiceNum"
+								:formatter="formattedNumber"
+							/>
+							<el-table-column
+								label="寮�绁ㄩ噾棰�(鍏�)"
+								prop="invoiceAmount"
+								:formatter="formattedNumber"
+							/>
+							<el-table-column
+								label="鏈紑绁ㄦ暟"
+								prop="noInvoiceNum"
+								:formatter="formattedNumber"
+							/>
+							<el-table-column
+								label="鏈紑绁ㄩ噾棰�(鍏�)"
+								prop="noInvoiceAmount"
+								:formatter="formattedNumber"
+							/>
+						</el-table>
+					</template>
+				</el-table-column>
+				<el-table-column align="center" label="搴忓彿" type="index" width="60" />
+				<el-table-column
+					label="閿�鍞悎鍚屽彿"
+					prop="salesContractNo"
+					show-overflow-tooltip
+					width="200"
+				/>
+				<el-table-column
+					label="瀹㈡埛鍚堝悓鍙�"
+					prop="customerContractNo"
+					width="200"
+					show-overflow-tooltip
+				/>
+				<el-table-column
+					label="瀹㈡埛鍚嶇О"
+					prop="customerName"
+					show-overflow-tooltip
+					width="240"
+				/>
+				<el-table-column label="涓氬姟鍛�" prop="salesman" show-overflow-tooltip width="90"/>
+				<el-table-column
+					label="鍚堝悓閲戦(鍏�)"
+					prop="contractAmount"
+					show-overflow-tooltip
+					:formatter="formattedNumber"
 					width="220"
-
-        />
-        <el-table-column
-          label="宸插紑绁ㄩ噾棰�(鍏�)"
-          prop="invoiceTotal"
-          show-overflow-tooltip
-          :formatter="formattedNumber"
-          width="120"
-        />
-        <el-table-column
-          label="鏈紑绁ㄩ噾棰�(鍏�)"
-          prop="noInvoiceAmountTotal"
-          show-overflow-tooltip
-          width="120"
-        >
-          <template #default="{ row, column }">
-            <el-text type="danger">
-              {{ formattedNumber(row, column, row.noInvoiceAmountTotal) }}
-            </el-text>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination
-        v-show="total > 0"
-        :total="total"
-        layout="total, sizes, prev, pager, next, jumper"
-        :page="page.current"
-        :limit="page.size"
-        @pagination="paginationChange"
-      />
-    </div>
-    <el-dialog
-      v-model="dialogFormVisible"
-      title="鏂板寮�绁ㄧ櫥璁伴〉闈�"
-      width="85%"
-      @close="closeDia"
-    >
-      <el-form
-        :model="form"
-        label-width="140px"
-        label-position="top"
-        :rules="rules"
-        ref="formRef"
-      >
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo">
-              <el-input v-model="form.salesContractNo" disabled></el-input>
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="瀹㈡埛鍚嶇О锛�" prop="customerName">
-              <el-input
-                v-model="form.customerName"
-                placeholder="鑷姩濉厖"
-                disabled
-              ></el-input>
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="涓氬姟鍛橈細" prop="salesman">
-              <el-input
-                v-model="form.salesman"
-                placeholder="鑷姩濉厖"
-                disabled
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="褰曞叆浜�" prop="createUer">
-              <el-input v-model="form.createUer" placeholder="璇疯緭鍏ュ綍鍏ヤ汉" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="寮�绁ㄦ棩鏈�" prop="issueDate">
-              <el-date-picker
-                style="width: 100%"
-                v-model="form.issueDate"
-                type="date"
-                placeholder="璇烽�夋嫨"
-                clearable
-                format="YYYY-MM-DD"
-                value-format="YYYY-MM-DD"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="30">
-          <el-col :span="12">
-            <el-form-item label="褰曞叆鏃ユ湡锛�" prop="createTime">
-              <el-date-picker
-                style="width: 100%"
-                v-model="form.createTime"
-                type="date"
-                placeholder="璇烽�夋嫨"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鍙戠エ鍙风爜锛�" prop="invoiceNo">
-              <el-input
-                v-model="form.invoiceNo"
-                placeholder="璇疯緭鍏�"
-                clearable
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-form-item label="浜у搧淇℃伅锛�" prop="entryDate"> </el-form-item>
-        </el-row>
-        <el-table
-          :data="productData"
-          border
-          show-summary
-          :summary-method="summarizeChildrenTable"
-        >
-          <el-table-column
-            align="center"
-            label="搴忓彿"
-            type="index"
-            width="60"
-          />
-          <el-table-column label="浜у搧澶х被" prop="productCategory" />
-          <el-table-column
-            label="瑙勬牸鍨嬪彿"
-            prop="specificationModel"
-            width="150"
-          />
-          <el-table-column label="鍗曚綅" prop="unit" />
-          <el-table-column label="鏁伴噺" prop="quantity" width="70" />
-          <el-table-column label="绋庣巼(%)" prop="taxRate" width="80" />
-          <el-table-column
-            label="鍚◣鍗曚环(鍏�)"
-            prop="taxInclusiveUnitPrice"
-            :formatter="formattedNumber"
+				
+				/>
+				<el-table-column
+					label="宸插紑绁ㄩ噾棰�(鍏�)"
+					prop="invoiceTotal"
+					show-overflow-tooltip
+					:formatter="formattedNumber"
+					width="120"
+				/>
+				<el-table-column
+					label="鏈紑绁ㄩ噾棰�(鍏�)"
+					prop="noInvoiceAmountTotal"
+					show-overflow-tooltip
+					width="120"
+				>
+					<template #default="{ row, column }">
+						<el-text type="danger">
+							{{ formattedNumber(row, column, row.noInvoiceAmountTotal) }}
+						</el-text>
+					</template>
+				</el-table-column>
+			</el-table>
+			<pagination
+				v-show="total > 0"
+				:total="total"
+				layout="total, sizes, prev, pager, next, jumper"
+				:page="page.current"
+				:limit="page.size"
+				@pagination="paginationChange"
+			/>
+		</div>
+		<el-dialog
+			v-model="dialogFormVisible"
+			title="鏂板寮�绁ㄧ櫥璁伴〉闈�"
+			width="85%"
+			@close="closeDia"
+		>
+			<el-form
+				:model="form"
+				label-width="140px"
+				label-position="top"
+				:rules="rules"
+				ref="formRef"
+			>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="閿�鍞悎鍚屽彿锛�" prop="salesContractNo">
+							<el-input v-model="form.salesContractNo" disabled placeholder="澶氬悎鍚屾壒閲忓鐞嗭紙鍏蜂綋鍚堝悓鍙疯浜у搧鍒楄〃锛�"></el-input>
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="瀹㈡埛鍚嶇О锛�" prop="customerName">
+							<el-input
+								v-model="form.customerName"
+								placeholder="鑷姩濉厖"
+								disabled
+							></el-input>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="涓氬姟鍛橈細" prop="salesman">
+							<el-input
+								v-model="form.salesman"
+								placeholder="鑷姩濉厖"
+								disabled
+							/>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="褰曞叆浜�" prop="createUer">
+							<el-input v-model="form.createUer" placeholder="璇疯緭鍏ュ綍鍏ヤ汉" />
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="寮�绁ㄦ棩鏈�" prop="issueDate">
+							<el-date-picker
+								style="width: 100%"
+								v-model="form.issueDate"
+								type="date"
+								placeholder="璇烽�夋嫨"
+								clearable
+								format="YYYY-MM-DD"
+								value-format="YYYY-MM-DD"
+							/>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="30">
+					<el-col :span="12">
+						<el-form-item label="褰曞叆鏃ユ湡锛�" prop="createTime">
+							<el-date-picker
+								style="width: 100%"
+								v-model="form.createTime"
+								type="date"
+								placeholder="璇烽�夋嫨"
+								clearable
+							/>
+						</el-form-item>
+					</el-col>
+					<el-col :span="12">
+						<el-form-item label="鍙戠エ鍙风爜锛�" prop="invoiceNo">
+							<el-input
+								v-model="form.invoiceNo"
+								placeholder="璇疯緭鍏�"
+								clearable
+							/>
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row>
+					<el-form-item label="浜у搧淇℃伅锛�" prop="entryDate"> </el-form-item>
+				</el-row>
+				<el-table
+					:data="productData"
+					border
+					show-summary
+					:summary-method="summarizeChildrenTable"
+				>
+					<el-table-column
+						align="center"
+						label="搴忓彿"
+						type="index"
+						width="60"
+					/>
+					<el-table-column label="鎵�灞炲悎鍚�" prop="salesContractNo" width="200">
+						<template #default="{ row }">
+							<el-tag type="primary">{{ row.salesContractNo }}</el-tag>
+						</template>
+					</el-table-column>
+					<el-table-column label="浜у搧澶х被" prop="productCategory" />
+					<el-table-column
+						label="瑙勬牸鍨嬪彿"
+						prop="specificationModel"
+						width="150"
+					/>
+					<el-table-column label="鍗曚綅" prop="unit" />
+					<el-table-column label="鏁伴噺" prop="quantity" width="70" />
+					<el-table-column label="绋庣巼(%)" prop="taxRate" width="80" />
+					<el-table-column
+						label="鍚◣鍗曚环(鍏�)"
+						prop="taxInclusiveUnitPrice"
+						:formatter="formattedNumber"
 						width="200"
-          />
-          <el-table-column
-            label="鍚◣鎬讳环(鍏�)"
-            prop="taxInclusiveTotalPrice"
-            :formatter="formattedNumber"
+					/>
+					<el-table-column
+						label="鍚◣鎬讳环(鍏�)"
+						prop="taxInclusiveTotalPrice"
+						:formatter="formattedNumber"
 						width="200"
-          />
-          <el-table-column
-            label="涓嶅惈绋庢�讳环(鍏�)"
-            prop="taxExclusiveTotalPrice"
-            :formatter="formattedNumber"
-            width="150"
-          />
-          <el-table-column label="鏈寮�绁ㄦ暟" prop="currentInvoiceNum" width="180">
-            <template #default="scope">
-              <el-input-number :step="0.1" :min="0" style="width: 100%"
+					/>
+					<el-table-column
+						label="涓嶅惈绋庢�讳环(鍏�)"
+						prop="taxExclusiveTotalPrice"
+						:formatter="formattedNumber"
+						width="150"
+					/>
+					<el-table-column label="鏈寮�绁ㄦ暟" prop="currentInvoiceNum" width="180">
+						<template #default="scope">
+							<el-input-number :step="0.1" :min="0" style="width: 100%"
 															 :precision="2"
-                v-model="scope.row.currentInvoiceNum"
-                @change="invoiceNumBlur(scope.row)"
-              ></el-input-number>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="鏈寮�绁ㄩ噾棰�(鍏�)"
-            prop="currentInvoiceAmount"
-            width="180"
-          >
-            <template #default="scope">
-              <el-input-number :step="0.01" :min="0" style="width: 100%"
+															 v-model="scope.row.currentInvoiceNum"
+															 @change="invoiceNumBlur(scope.row)"
+							></el-input-number>
+						</template>
+					</el-table-column>
+					<el-table-column
+						label="鏈寮�绁ㄩ噾棰�(鍏�)"
+						prop="currentInvoiceAmount"
+						width="180"
+					>
+						<template #default="scope">
+							<el-input-number :step="0.01" :min="0" style="width: 100%"
 															 :precision="2"
-                v-model="scope.row.currentInvoiceAmount"
-                @change="invoiceAmountBlur(scope.row)"
-              ></el-input-number>
-            </template>
-          </el-table-column>
-          <el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum" width="120">
-            <template #default="scope">
-              <el-input
-                type="number"
-                min="0"
-                disabled
-                v-model="scope.row.noInvoiceNum"
-              ></el-input>
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="鏈紑绁ㄩ噾棰�(鍏�)"
-            prop="noInvoiceAmount"
-            width="200"
-          >
-            <template #default="scope">
-              <el-input
-                type="number"
-                min="0"
-                disabled
-                v-model="scope.row.noInvoiceAmount"
-                :formatter="formattedInputNumber"
-                :precision="2"
-                :step="0.01"
-              ></el-input>
-            </template>
-          </el-table-column>
-          <el-table-column label="鐧昏浜�" prop="register" width="100">
-            <!-- <template #default="{ row }">
-              <el-input
-                v-model="row.register"
-                placeholder="璇疯緭鍏ョ櫥璁颁汉"
-                disabled
-              />
-            </template> -->
-          </el-table-column>
-          <el-table-column label="鐧昏鏃ユ湡" prop="registerDate" width="150">
-            <!-- <template #default="{ row }">
-              <el-date-picker
-                style="width: 100%"
-                v-model="row.registerDate"
-                value-format="YYYY-MM-DD"
-                format="YYYY-MM-DD"
-                type="date"
-                placeholder="璇烽�夋嫨"
-                clearable
-                disabled
-              />
-            </template> -->
-          </el-table-column>
-        </el-table>
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭</el-button>
-          <el-button @click="closeDia">鍙栨秷</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
+															 v-model="scope.row.currentInvoiceAmount"
+															 @change="invoiceAmountBlur(scope.row)"
+							></el-input-number>
+						</template>
+					</el-table-column>
+					<el-table-column label="鏈紑绁ㄦ暟" prop="noInvoiceNum" width="120">
+						<template #default="scope">
+							<el-input
+								type="number"
+								min="0"
+								disabled
+								v-model="scope.row.noInvoiceNum"
+							></el-input>
+						</template>
+					</el-table-column>
+					<el-table-column
+						label="鏈紑绁ㄩ噾棰�(鍏�)"
+						prop="noInvoiceAmount"
+						width="200"
+					>
+						<template #default="scope">
+							<el-input
+								type="number"
+								min="0"
+								disabled
+								v-model="scope.row.noInvoiceAmount"
+								:formatter="formattedInputNumber"
+								:precision="2"
+								:step="0.01"
+							></el-input>
+						</template>
+					</el-table-column>
+					<el-table-column label="鐧昏浜�" prop="register" width="100">
+						<!-- <template #default="{ row }">
+							<el-input
+								v-model="row.register"
+								placeholder="璇疯緭鍏ョ櫥璁颁汉"
+								disabled
+							/>
+						</template> -->
+					</el-table-column>
+					<el-table-column label="鐧昏鏃ユ湡" prop="registerDate" width="150">
+						<!-- <template #default="{ row }">
+							<el-date-picker
+								style="width: 100%"
+								v-model="row.registerDate"
+								value-format="YYYY-MM-DD"
+								format="YYYY-MM-DD"
+								type="date"
+								placeholder="璇烽�夋嫨"
+								clearable
+								disabled
+							/>
+						</template> -->
+					</el-table-column>
+				</el-table>
+			</el-form>
+			<template #footer>
+				<div class="dialog-footer">
+					<el-button type="primary" @click="submitForm">纭</el-button>
+					<el-button @click="closeDia">鍙栨秷</el-button>
+				</div>
+			</template>
+		</el-dialog>
+	</div>
 </template>
 
 <script setup>
@@ -373,9 +386,9 @@
 import { ElMessageBox } from "element-plus";
 // import {userListNoPage} from "@/api/system/user.js";
 import {
-  getSalesLedgerWithProducts,
-  ledgerListPage,
-  productList,
+	getSalesLedgerWithProducts,
+	ledgerListPage,
+	productList,
 } from "@/api/salesManagement/salesLedger.js";
 import { invoiceRegistrationSave } from "@/api/salesManagement/invoiceRegistration.js";
 import useFormData from "@/hooks/useFormData";
@@ -389,261 +402,375 @@
 const selectedRows = ref([]);
 const tableLoading = ref(false);
 const page = reactive({
-  current: 1,
-  size: 100,
+	current: 1,
+	size: 100,
 });
 const total = ref(0);
 // 鐢ㄦ埛淇℃伅琛ㄥ崟寮规鏁版嵁
 const operationType = ref("");
 const dialogFormVisible = ref(false);
 const data = reactive({
-  searchForm: {
-    customerName: "",
-    status: false,
-    customerContractNo: undefined, // 瀹㈡埛鍚堝悓鍙�
-    projectName: undefined, // 椤圭洰鍚嶇О
-    createUer: undefined, // 鐧昏浜�
-    issueDate: undefined, // 寮�绁ㄦ棩鏈�
-    createTime: undefined, // 褰曞叆鏃ユ湡锛�
-  },
-  form: {
-    salesLedgerId: "",
-    customerName: "",
-    salesman: "",
-    projectName: "",
-    productData: [],
-    invoiceNo: "",
-    createUer: userStore.nickName,
-    issueDate: dayjs().format("YYYY-MM-DD"),
-  },
-  rules: {
-    salesLedgerId: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-    createUer: [{ required: true, message: "璇烽�夋嫨", trigger: "blur" }],
-    issueDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-    invoiceNo: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
-    createTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
-  },
+	searchForm: {
+		customerName: "",
+		status: false,
+		customerContractNo: undefined, // 瀹㈡埛鍚堝悓鍙�
+		projectName: undefined, // 椤圭洰鍚嶇О
+		createUer: undefined, // 鐧昏浜�
+		issueDate: undefined, // 寮�绁ㄦ棩鏈�
+		createTime: undefined, // 褰曞叆鏃ユ湡锛�
+		productCategory: "",
+		isInvoice: 1
+	},
+	form: {
+		salesLedgerId: "",
+		customerName: "",
+		salesman: "",
+		projectName: "",
+		productData: [],
+		invoiceNo: "",
+		createUer: userStore.nickName,
+		issueDate: dayjs().format("YYYY-MM-DD"),
+		selectedContractIds: [], // 鏂板锛氬瓨鍌ㄦ墍鏈夐�変腑鐨勫悎鍚孖D
+		isBatch: false // 鏂板锛氭爣璇嗘槸鍚︿负鎵归噺鎿嶄綔
+	},
+	rules: {
+		createUer: [{ required: true, message: "璇烽�夋嫨", trigger: "blur" }],
+		issueDate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+		invoiceNo: [{ required: true, message: "璇疯緭鍏�", trigger: "change" }],
+		createTime: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+	},
 });
 const { form, rules } = toRefs(data);
 const { form: searchForm, resetForm } = useFormData(data.searchForm);
 
 const formattedNumber = (row, column, cellValue) => {
-  if (cellValue == 0) {
-    return parseFloat(cellValue).toFixed(2);
-  }
-  if (cellValue) {
-    return parseFloat(cellValue).toFixed(2);
-  } else {
-    return cellValue;
-  }
+	if (cellValue == 0) {
+		return parseFloat(cellValue).toFixed(2);
+	}
+	if (cellValue) {
+		return parseFloat(cellValue).toFixed(2);
+	} else {
+		return cellValue;
+	}
 };
 
 const formattedInputNumber = (value) => {
-  return value ? parseFloat(value).toFixed(2) : 0;
+	return value ? parseFloat(value).toFixed(2) : 0;
 };
 
 // 鏌ヨ鍒楄〃
 /** 鎼滅储鎸夐挳鎿嶄綔 */
 const handleQuery = () => {
-  page.current = 1;
-  getList();
+	page.current = 1;
+	getList();
 };
 const paginationChange = (obj) => {
-  page.current = obj.page;
-  page.size = obj.limit;
-  getList();
+	page.current = obj.page;
+	page.size = obj.limit;
+	getList();
 };
 const getList = () => {
-  tableLoading.value = true;
-  ledgerListPage({ ...searchForm, ...page }).then((res) => {
-    tableLoading.value = false;
-    tableData.value = res.records;
-    total.value = res.total;
-    expandedRowKeys.value = [];
-  });
+	tableLoading.value = true;
+	ledgerListPage({ ...searchForm, ...page }).then((res) => {
+		tableLoading.value = false;
+		tableData.value = res.records;
+		total.value = res.total;
+		expandedRowKeys.value = [];
+	});
 };
 // 琛ㄦ牸閫夋嫨鏁版嵁
 const handleSelectionChange = (selection) => {
-  console.log("selection", selection);
-  selectedRows.value = selection.filter(
-    (item) => item.salesContractNo !== undefined
-  );
+	console.log("selection", selection);
+	selectedRows.value = selection.filter(
+		(item) => item.salesContractNo !== undefined
+	);
 };
 const expandedRowKeys = ref([]);
 // 灞曞紑琛�
 const expandChange = (row, expandedRows) => {
-  if (expandedRows.length > 0) {
-    expandedRowKeys.value = [];
-    try {
-      productList({ salesLedgerId: row.id, type: 1 }).then((res) => {
-        const index = tableData.value.findIndex((item) => item.id === row.id);
-        if (index > -1) {
-          tableData.value[index].children = res.data;
-        }
-        expandedRowKeys.value.push(row.id);
-      });
-    } catch (error) {
-      console.log(error);
-    }
-  } else {
-    expandedRowKeys.value = [];
-  }
+	if (expandedRows.length > 0) {
+		expandedRowKeys.value = [];
+		try {
+			productList({ salesLedgerId: row.id, type: 1 }).then((res) => {
+				const index = tableData.value.findIndex((item) => item.id === row.id);
+				if (index > -1) {
+					tableData.value[index].children = res.data;
+				}
+				expandedRowKeys.value.push(row.id);
+			});
+		} catch (error) {
+			console.log(error);
+		}
+	} else {
+		expandedRowKeys.value = [];
+	}
 };
 // 涓昏〃鍚堣鏂规硶
 const summarizeMainTable = (param) => {
-  return proxy.summarizeTable(param, [
-    "contractAmount",
-    "invoiceTotal",
-    "noInvoiceAmountTotal",
-  ]);
+	return proxy.summarizeTable(param, [
+		"contractAmount",
+		"invoiceTotal",
+		"noInvoiceAmountTotal",
+	]);
 };
 // 瀛愯〃鍚堣鏂规硶
 const summarizeChildrenTable = (param) => {
-  return proxy.summarizeTable(param, [
-    "taxInclusiveUnitPrice",
-    "taxInclusiveTotalPrice",
-    "taxExclusiveTotalPrice",
-    "invoiceNum",
-    "invoiceAmount",
-    "currentInvoiceAmount",
-    "noInvoiceNum",
-    "noInvoiceAmount",
-    "currentInvoiceNum",
-  ]);
+	return proxy.summarizeTable(param, [
+		"taxInclusiveUnitPrice",
+		"taxInclusiveTotalPrice",
+		"taxExclusiveTotalPrice",
+		"invoiceNum",
+		"invoiceAmount",
+		"currentInvoiceAmount",
+		"noInvoiceNum",
+		"noInvoiceAmount",
+		"currentInvoiceNum",
+	]);
 };
 // 鎵撳紑寮规
 const openForm = () => {
-  // 鍒ゆ柇鏄惁澶氶��
-  if (selectedRows.value.length != 1) {
-    proxy.$modal.msgError("璇烽�夋嫨涓�鏉″悎鍚�");
-    return;
-  }
-  form.value = {};
-  productData.value = [];
-  getSalesLedgerWithProducts({ id: selectedRows.value[0].id }).then((res) => {
-    form.value = { ...res };
-    form.value.createTime = dayjs().format("YYYY-MM-DD");
-    form.value.issueDate = dayjs().format("YYYY-MM-DD");
-    form.value.createUer = userStore.nickName;
-    productData.value = form.value.productData.map((item) => {
-      return item;
-    });
-    dialogFormVisible.value = true;
-    console.log("productData.value ", productData.value);
-  });
+	// 鍒ゆ柇鏄惁閫夋嫨浜嗗悎鍚�
+	if (selectedRows.value.length === 0) {
+		proxy.$modal.msgError("璇疯嚦灏戦�夋嫨涓�鏉″悎鍚�");
+		return;
+	}
+	
+	// 妫�鏌ユ墍鏈夐�夋嫨鐨勫悎鍚屾槸鍚﹀叿鏈夌浉鍚岀殑瀹㈡埛鍚嶇О
+	const firstRow = selectedRows.value[0];
+	const isSameCustomer = selectedRows.value.every(row =>
+		row.customerName === firstRow.customerName
+	);
+	
+	if (!isSameCustomer) {
+		proxy.$modal.msgError("璇烽�夋嫨鐩稿悓瀹㈡埛鍚嶇О鐨勫悎鍚�");
+		return;
+	}
+	
+	// 鍏佽涓嶅悓鐨勯攢鍞悎鍚屽彿鎵归噺澶勭悊锛屾棤闇�妫�鏌ラ噸澶�
+	
+	form.value = {};
+	productData.value = [];
+	
+	// 鍔犺浇鎵�鏈夐�変腑鍚堝悓鐨勪骇鍝佹暟鎹�
+	const promises = selectedRows.value.map(row =>
+		getSalesLedgerWithProducts({ id: row.id })
+	);
+	
+	Promise.all(promises).then(results => {
+		// 鍚堝苟鎵�鏈夊悎鍚岀殑浜у搧鏁版嵁锛屽苟涓烘瘡涓骇鍝佹坊鍔犲搴旂殑鍚堝悓淇℃伅
+		const allProductData = [];
+		results.forEach((result, index) => {
+			const contract = selectedRows.value[index];
+			const contractId = contract.id;
+			if (result.productData) {
+				result.productData.forEach(item => {
+					allProductData.push({
+						...item,
+						id: contractId, // 鏄庣‘璁剧疆鍚堝悓ID
+						salesContractNo: contract.salesContractNo, // 娣诲姞閿�鍞悎鍚屽彿
+						customerName: contract.customerName, // 娣诲姞瀹㈡埛鍚嶇О
+						customerContractNo: contract.customerContractNo // 娣诲姞瀹㈡埛鍚堝悓鍙�
+					});
+				});
+			}
+		});
+		
+		// 璁剧疆琛ㄥ崟鏁版嵁锛堜娇鐢ㄧ涓�涓悎鍚岀殑鍩烘湰淇℃伅锛岄攢鍞悎鍚屽彿鐣欑┖锛�
+		form.value = { ...results[0] };
+		form.value.createTime = dayjs().format("YYYY-MM-DD");
+		form.value.issueDate = dayjs().format("YYYY-MM-DD");
+		form.value.createUer = userStore.nickName;
+		form.value.selectedContractIds = selectedRows.value.map(row => row.id); // 瀛樺偍鎵�鏈夐�変腑鐨勫悎鍚孖D
+		form.value.salesContractNo = ""; // 閿�鍞悎鍚屽彿鐣欑┖锛屽洜涓轰細鍦ㄤ骇鍝佽〃鏍间腑鍒嗗埆鏄剧ず
+		
+		productData.value = allProductData;
+		
+		dialogFormVisible.value = true;
+		console.log("productData.value ", productData.value);
+	});
 };
 // 鎻愪氦琛ㄥ崟
 const submitForm = () => {
-  proxy.$refs["formRef"].validate((valid) => {
-    if (valid) {
-      form.value.productData = proxy.HaveJson(productData.value);
-      invoiceRegistrationSave(form.value).then((res) => {
-        proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
-        closeDia();
-        getList();
-      });
-    }
-  });
+	proxy.$refs["formRef"].validate((valid) => {
+		if (valid) {
+			// 濡傛灉鏄壒閲忔搷浣滐紝灏嗘墍鏈夊悎鍚岀殑鏁版嵁鏀惧湪涓�涓暟缁勯噷锛屽彧璋冪敤涓�娆℃帴鍙�
+			if (selectedRows.value.length > 1) {
+				// 鍒涘缓鍖呭惈鎵�鏈夊悎鍚屾暟鎹殑鏁扮粍
+				const batchData = selectedRows.value.map(contract => {
+					// 绛涢�夊嚭灞炰簬褰撳墠鍚堝悓鐨勪骇鍝佹暟鎹�
+					const contractProductData = productData.value.filter(item =>
+						item.salesLedgerId === contract.id
+					);
+					
+					// 涓烘瘡涓攢鍞悎鍚屽彿鍒涘缓鐙珛鐨勫璞�
+					return {
+						// 鍩虹琛ㄥ崟鏁版嵁
+						issueDate: form.value.issueDate,
+						createTime: form.value.createTime,
+						createUer: form.value.createUer,
+						invoiceNo: form.value.invoiceNo,
+						
+						// 鍚堝悓瀹為檯淇℃伅
+						id: contract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负salesLedgerId
+						salesContractNo: contract.salesContractNo, // 浣跨敤瀹為檯鐨勯攢鍞悎鍚屽彿
+						customerName: contract.customerName, // 浣跨敤瀹為檯鐨勫鎴峰悕绉�
+						customerId: contract.customerId, // 娣诲姞瀹㈡埛ID
+						customerContractNo: contract.customerContractNo, // 浣跨敤瀹為檯鐨勫鎴峰悎鍚屽彿
+						projectName: contract.projectName, // 浣跨敤瀹為檯鐨勯」鐩悕绉�
+						salesman: contract.salesman, // 浣跨敤瀹為檯鐨勪笟鍔″憳
+						
+						// 浜у搧鏁版嵁
+						productData: proxy.HaveJson(contractProductData),
+						
+						// 鎵归噺鏍囪瘑
+						isBatch: true
+					};
+				});
+				
+				// 鍙皟鐢ㄤ竴娆℃帴鍙o紝浼犻�掑寘鍚墍鏈夊悎鍚屾暟鎹殑鏁扮粍
+				invoiceRegistrationSave(batchData).then(() => {
+					proxy.$modal.msgSuccess("鎵归噺鏂板鎴愬姛");
+					closeDia();
+					getList();
+				});
+			} else {
+				// 鍗曚釜鍚堝悓鎻愪氦閫昏緫
+				const singleContract = selectedRows.value[0];
+				const singleForm = {
+					// 鍩虹琛ㄥ崟鏁版嵁
+					issueDate: form.value.issueDate,
+					createTime: form.value.createTime,
+					createUer: form.value.createUer,
+					invoiceNo: form.value.invoiceNo,
+					
+					// 鍚堝悓瀹為檯淇℃伅
+					id: singleContract.id, // 浣跨敤id浣滀负瀛楁鍚嶏紝鍊间负salesLedgerId
+					salesContractNo: singleContract.salesContractNo, // 浣跨敤瀹為檯鐨勯攢鍞悎鍚屽彿
+					customerName: singleContract.customerName, // 浣跨敤瀹為檯鐨勫鎴峰悕绉�
+					customerId: singleContract.customerId, // 娣诲姞瀹㈡埛ID
+					customerContractNo: singleContract.customerContractNo, // 浣跨敤瀹為檯鐨勫鎴峰悎鍚屽彿
+					projectName: singleContract.projectName, // 浣跨敤瀹為檯鐨勯」鐩悕绉�
+					salesman: singleContract.salesman, // 浣跨敤瀹為檯鐨勪笟鍔″憳
+					
+					// 浜у搧鏁版嵁
+					productData: proxy.HaveJson(productData.value),
+					
+					// 鎵归噺鏍囪瘑
+					isBatch: false
+				};
+				invoiceRegistrationSave(singleForm).then((res) => {
+					proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
+					closeDia();
+					getList();
+				});
+			}
+		}
+	});
 };
 // 鍏抽棴寮规
 const closeDia = () => {
-  proxy.resetForm("formRef");
-  dialogFormVisible.value = false;
+	proxy.resetForm("formRef");
+	dialogFormVisible.value = false;
 };
 // 瀵煎嚭
 const handleOut = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-    .then(() => {
-      proxy.download("/invoiceRegistration/export", {}, "寮�绁ㄧ櫥璁颁俊鎭�.xlsx");
-    })
-    .catch(() => {
-      proxy.$modal.msg("宸插彇娑�");
-    });
+	ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+		confirmButtonText: "纭",
+		cancelButtonText: "鍙栨秷",
+		type: "warning",
+	})
+		.then(() => {
+			proxy.download("/invoiceRegistration/export", {}, "寮�绁ㄧ櫥璁颁俊鎭�.xlsx");
+		})
+		.catch(() => {
+			proxy.$modal.msg("宸插彇娑�");
+		});
 };
 
 // 瀵煎嚭閿�鍞彴璐�
 const handleExport = () => {
-  ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
-    confirmButtonText: "纭",
-    cancelButtonText: "鍙栨秷",
-    type: "warning",
-  })
-    .then(() => {
-      proxy.download("/sales/ledger/exportOne", { ...searchForm, ...page }, "寮�绁ㄧ櫥璁�.xlsx");
-    })
-    .catch(() => {
-      proxy.$modal.msg("宸插彇娑�");
-    });
+	ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+		confirmButtonText: "纭",
+		cancelButtonText: "鍙栨秷",
+		type: "warning",
+	})
+		.then(() => {
+			proxy.download("/sales/ledger/exportOne", { ...searchForm, ...page }, "寮�绁ㄧ櫥璁�.xlsx");
+		})
+		.catch(() => {
+			proxy.$modal.msg("宸插彇娑�");
+		});
 };
 
 //鏈寮�绁ㄥけ鐒︽搷浣�
 const invoiceNumBlur = (row) => {
-  if (!row.currentInvoiceNum) {
-    row.currentInvoiceNum = 0;
-  }
-  if (row.currentInvoiceNum > row.tempNoInvoiceNum) {
-    proxy.$modal.msgWarning("鏈寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
-    row.currentInvoiceNum = 0;
-  }
-  // 璁$畻鏈寮�绁ㄩ噾棰�
-  row.currentInvoiceAmount = (
-    row.currentInvoiceNum * row.taxInclusiveUnitPrice
-  ).toFixed(2);
-  // 璁$畻鏈紑绁ㄦ暟
-  row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
-    2
-  );
-  // 璁$畻鏈紑绁ㄩ噾棰�
-  row.noInvoiceAmount = (
-    row.tempnoInvoiceAmount - row.currentInvoiceAmount
-  ).toFixed(2);
+	if (!row.currentInvoiceNum) {
+		row.currentInvoiceNum = 0;
+	}
+	if (row.currentInvoiceNum > row.tempNoInvoiceNum) {
+		proxy.$modal.msgWarning("鏈寮�绁ㄦ暟涓嶅緱澶т簬鏈紑绁ㄦ暟");
+		row.currentInvoiceNum = 0;
+	}
+	// 璁$畻鏈寮�绁ㄩ噾棰�
+	row.currentInvoiceAmount = (
+		row.currentInvoiceNum * row.taxInclusiveUnitPrice
+	).toFixed(2);
+	// 璁$畻鏈紑绁ㄦ暟
+	row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
+		2
+	);
+	// 璁$畻鏈紑绁ㄩ噾棰�
+	row.noInvoiceAmount = (
+		row.tempnoInvoiceAmount - row.currentInvoiceAmount
+	).toFixed(2);
 };
 // 鏈寮�绁ㄩ噾棰濆け鐒︽搷浣�
 const invoiceAmountBlur = (row) => {
-  if (!row.currentInvoiceAmount) {
-    row.currentInvoiceAmount = 0;
-  }
-  // 璁$畻鏄惁瓒呰繃寮�绁ㄦ�婚噾棰�
-  if (row.currentInvoiceAmount > row.tempnoInvoiceAmount) {
-    proxy.$modal.msgWarning("鏈寮�绁ㄩ噾棰濅笉寰楀ぇ浜庢湭寮�绁ㄩ噾棰�");
-    row.currentInvoiceAmount = 0;
-  }
-  // 璁$畻鏈寮�绁ㄦ暟
-  row.currentInvoiceNum = (
-    row.currentInvoiceAmount / row.taxInclusiveUnitPrice
-  ).toFixed(2);
-  console.log("row.currentInvoiceNum ", row.currentInvoiceNum);
-  console.log(" row.originalNoInvoiceNum  ", row.originalNoInvoiceNum);
-  // 璁$畻鏈紑绁ㄦ暟
-  row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
-    2
-  );
-  // 璁$畻鏈紑绁ㄩ噾棰�
-  row.noInvoiceAmount = (
-    row.tempnoInvoiceAmount - row.currentInvoiceAmount
-  ).toFixed(2);
+	if (!row.currentInvoiceAmount) {
+		row.currentInvoiceAmount = 0;
+	}
+	// 璁$畻鏄惁瓒呰繃寮�绁ㄦ�婚噾棰�
+	if (row.currentInvoiceAmount > row.tempnoInvoiceAmount) {
+		proxy.$modal.msgWarning("鏈寮�绁ㄩ噾棰濅笉寰楀ぇ浜庢湭寮�绁ㄩ噾棰�");
+		row.currentInvoiceAmount = 0;
+	}
+	// 璁$畻鏈寮�绁ㄦ暟
+	row.currentInvoiceNum = (
+		row.currentInvoiceAmount / row.taxInclusiveUnitPrice
+	).toFixed(2);
+	console.log("row.currentInvoiceNum ", row.currentInvoiceNum);
+	console.log(" row.originalNoInvoiceNum  ", row.originalNoInvoiceNum);
+	// 璁$畻鏈紑绁ㄦ暟
+	row.noInvoiceNum = (row.originalNoInvoiceNum - row.currentInvoiceNum).toFixed(
+		2
+	);
+	// 璁$畻鏈紑绁ㄩ噾棰�
+	row.noInvoiceAmount = (
+		row.tempnoInvoiceAmount - row.currentInvoiceAmount
+	).toFixed(2);
 };
 
 onMounted(() => {
-  getList();
+	getList();
 });
 </script>
 
 <style scoped lang="scss">
 .table_list {
-  margin-top: unset;
+	margin-top: unset;
 }
 .flex {
-  display: flex;
+	display: flex;
 }
 .justify-between {
-  justify-content: space-between;
+	justify-content: space-between;
 }
 ::v-deep(.el-checkbox__label) {
-  font-weight: bold;
+	font-weight: bold;
 }
 </style>
+
+
+
+
+

--
Gitblit v1.9.3